Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /******************************************************************************
- *
- * Copyright (C) 2009 - 2014 Xilinx, Inc. All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * Use of the Software is limited solely to applications:
- * (a) running on a Xilinx device, or
- * (b) that interact with a Xilinx device through a bus or interconnect.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
- * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Except as contained in this notice, the name of the Xilinx shall not be used
- * in advertising or otherwise to promote the sale, use or other dealings in
- * this Software without prior written authorization from Xilinx.
- *
- ******************************************************************************/
- /*
- * helloworld.c: simple test application
- *
- * This application configures UART 16550 to baud rate 9600.
- * PS7 UART (Zynq) is not initialized by this application, since
- * bootrom/bsp configures it to baud rate 115200
- *
- * ------------------------------------------------
- * | UART TYPE BAUD RATE |
- * ------------------------------------------------
- * uartns550 9600
- * uartlite Configurable only in HW design
- * ps7_uart 115200 (configured by bootrom/bsp)
- */
- #include <stdio.h>
- #include <string.h>
- #include "platform.h"
- #include "xil_printf.h"
- //int modInverse(int a, int m)
- //{
- // int m0 = m, t, q;
- // int x0 = 0, x1 = 1;
- //
- // if (m == 1)
- // return 0;
- //
- // while (a > 1) {
- // q = a / m;
- // t = m;
- // m = a % m;
- // a = t;
- // t = x0;
- // x0 = x1 - q * x0;
- // x1 = t;
- // }
- //
- // return x1;
- //}
- unsigned short int modInverse(unsigned short int a, unsigned short int m)
- {
- a = a%m;
- for (unsigned short int x=1; x<m; x++)
- if ((a*x) % m == 1)
- return x;
- }
- int main()
- {
- init_platform();
- unsigned short int Keys[60];
- unsigned short int inversedKeys[60];
- int i;
- char c;
- const int MOD = 65537;
- char *str = "RWoM6zqNvL3J+nZVJhRgI0RvV2Q/k618MCQcsWVgbmI=";
- memset(Keys, 0, sizeof(unsigned short int) * 60);
- memset(inversedKeys, 0, sizeof(unsigned short int) * 60);
- memcpy(Keys, str, strlen(str));
- inversedKeys[1] = modInverse(Keys[49], MOD);
- inversedKeys[2] = - Keys[50];
- inversedKeys[3] = - Keys[51];
- inversedKeys[4] = modInverse(Keys[52], MOD);
- for (i = 5; i <= 52; i ++) {
- inversedKeys[i] = Keys[52 - i];
- inversedKeys[i + 1] = Keys[52 -i + 1];
- inversedKeys[i + 2] = modInverse(Keys[52 - i - 4], MOD);
- inversedKeys[i + 3] = - Keys[52 - i - 2];
- inversedKeys[i + 4] = - Keys[52 - i - 3];
- inversedKeys[i + 5] = modInverse(Keys[52 - i - 1], MOD);
- }
- str = &Keys;
- for (i = 0; i < sizeof(Keys); i ++) {
- xil_printf("%c", str[i]);
- }
- xil_printf("\n");
- str = &inversedKeys;
- for (i = 0; i < sizeof(inversedKeys); i ++) {
- xil_printf("%c", str[i]);
- }
- xil_printf("\n");
- xil_printf("%d\n", modInverse(100, 7));
- cleanup_platform();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement