|
|
|
@@ -5,6 +5,7 @@
|
|
|
|
|
#include "peripherals/time.h"
|
|
|
|
|
#else
|
|
|
|
|
|
|
|
|
|
#include <stdint.h>
|
|
|
|
|
#include <sys/time.h>
|
|
|
|
|
|
|
|
|
|
#define uartInit(rate)
|
|
|
|
@@ -34,7 +35,7 @@ void vli_print(uint32_t *p_vli)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#if (ECC_CURVE == secp128r1)
|
|
|
|
|
uint32_t l_private[10][NUM_ECC_DIGITS] = {
|
|
|
|
|
uint32_t g_private[10][NUM_ECC_DIGITS] = {
|
|
|
|
|
{0xB66C17D0, 0xD21CD12E, 0x1885B2F7, 0x71D40584},
|
|
|
|
|
{0x6C99B53A, 0x86686357, 0x3E34C5C4, 0x5314DFA3},
|
|
|
|
|
{0x458B1408, 0x86D162A3, 0x7AB33E92, 0x92C9E643},
|
|
|
|
@@ -47,7 +48,7 @@ uint32_t l_private[10][NUM_ECC_DIGITS] = {
|
|
|
|
|
{0x8183C9A6, 0xA1C01A50, 0x592E9603, 0xDEB7FED9},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
EccPoint l_public[10] = {
|
|
|
|
|
EccPoint g_public[10] = {
|
|
|
|
|
{{0xE4C0291F, 0xA1F2E44A, 0x0B3653FD, 0x6930B1C5},
|
|
|
|
|
{0x8FD9A49A, 0xAC811AB9, 0x428FAAEC, 0xDDFD5DEF}},
|
|
|
|
|
{{0xC39CF076, 0xDE94A5CD, 0x73AEB0D7, 0xCE5451B4},
|
|
|
|
@@ -70,45 +71,8 @@ EccPoint l_public[10] = {
|
|
|
|
|
{0x80EE6E22, 0xF184553A, 0xBD4E27F1, 0x121DC4BF}},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#elif (ECC_CURVE == secp160r1)
|
|
|
|
|
uint32_t l_private[10][NUM_ECC_DIGITS] = {
|
|
|
|
|
{0x105C2141, 0xC8E7557E, 0x5A4CCF73, 0x0CE018F1, 0xBE12B09A},
|
|
|
|
|
{0xBBD1E4F1, 0xD3F5888D, 0xCF29731E, 0x46E8BF1C, 0x3A647CFB},
|
|
|
|
|
{0x0929883E, 0x7DA28983, 0x436E2180, 0x43ADF48D, 0x29A17725},
|
|
|
|
|
{0x8284F18E, 0x639C9DBF, 0x08ACC394, 0x9284E5C0, 0xF4BBDBD9},
|
|
|
|
|
{0x7D95B654, 0xF31EED03, 0x54B0333C, 0x355026C5, 0xCE647D2D},
|
|
|
|
|
{0xA78A9C27, 0x78DA4955, 0x61C94430, 0xDB4A6BC3, 0x2342A3EA},
|
|
|
|
|
{0x8AF959E1, 0xF599984B, 0xA78C4E7B, 0xA91E3D82, 0x71B6D8E4},
|
|
|
|
|
{0xFB4ABE6F, 0x33B3F3BD, 0xE63A2302, 0x034B6ADC, 0xD471450A},
|
|
|
|
|
{0x3E46D391, 0xFED4F4F8, 0xAEBBB8D6, 0xD3B20E61, 0x359C69DB},
|
|
|
|
|
{0x1A8062AD, 0x425CC438, 0x306FBFA7, 0x78C6365A, 0xCD80D4A8},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
EccPoint l_public[10] = {
|
|
|
|
|
{{0xB1545BD6, 0xAAF192BE, 0xD0541953, 0xF7C4F12B, 0x508FEA82},
|
|
|
|
|
{0x55DFCD38, 0x968C6CFD, 0x93F1963C, 0xF56C4881, 0x45F27B67}},
|
|
|
|
|
{{0x2EC3B849, 0x5974CEEF, 0x5A1308BD, 0x0CA111F7, 0x84A47D8C},
|
|
|
|
|
{0xB8E52F88, 0xC03D6A9C, 0x8FE910AB, 0xECDA5506, 0x5ECD9256}},
|
|
|
|
|
{{0x07108AA1, 0x5C5006EA, 0x85168CF7, 0x8EC0513D, 0xF80EFD7A},
|
|
|
|
|
{0xF50F8B01, 0x0F3EB8DB, 0x9E09D8E8, 0x52ED7740, 0x54D62103}},
|
|
|
|
|
{{0x5551E114, 0x2D6EA44D, 0x50685E1C, 0xE9EE0D30, 0x95851715},
|
|
|
|
|
{0xBF780FBB, 0xC087AEBD, 0xFDC038E9, 0xD6363346, 0x2F218F81}},
|
|
|
|
|
{{0x388735DD, 0x5EE80FC2, 0xB7732C0E, 0xD1BA9184, 0x710DB219},
|
|
|
|
|
{0xB1A0ABFD, 0x240D9B28, 0x3DD64CBC, 0x4509EDF6, 0x35B427A2}},
|
|
|
|
|
{{0x4CF7D00E, 0x443D8915, 0x1F2114B1, 0x1A7DF720, 0xB853C532},
|
|
|
|
|
{0xDEB946C3, 0x5DD1809D, 0x72D2F4BD, 0x0D406229, 0xF217FB7C}},
|
|
|
|
|
{{0x015B99A8, 0xCAB21F56, 0xB996A95E, 0x59C6717E, 0xD1892454},
|
|
|
|
|
{0x5031AC77, 0x6180D628, 0xDB1047A4, 0x2CC7A1C4, 0xC79F761B}},
|
|
|
|
|
{{0x9A389029, 0xEA7D47D5, 0x3B3309DC, 0xBE2558F1, 0x8C4E5EC9},
|
|
|
|
|
{0x5CACFFCB, 0xBD812C52, 0x8BBC4D71, 0x041E14D0, 0x243B5651}},
|
|
|
|
|
{{0x5EF73EC1, 0x9BFF280B, 0x7835B88E, 0xAE46D04F, 0x157F4F6C},
|
|
|
|
|
{0x5C933717, 0x8A5FC8DC, 0x61580A0D, 0x1A676575, 0xB5F0D609}},
|
|
|
|
|
{{0x7F1BF3EE, 0x82BA2BFC, 0x3175EDFA, 0x3A1E7C4C, 0x636D2C41},
|
|
|
|
|
{0x912EE676, 0x56C6FD0F, 0xB88A85E5, 0x5C40A901, 0x72714D0E}},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#elif (ECC_CURVE == secp192r1)
|
|
|
|
|
uint32_t l_private[10][NUM_ECC_DIGITS] = {
|
|
|
|
|
uint32_t g_private[10][NUM_ECC_DIGITS] = {
|
|
|
|
|
{0x8A8590BC, 0xF8FC6B96, 0x216D16F6, 0x5D471999, 0x77B54115, 0xA1C40C96},
|
|
|
|
|
{0x60867073, 0xC781509C, 0x36ACD71C, 0x58F5AD9E, 0xC2DB7360, 0x33BD208D},
|
|
|
|
|
{0x57DE05EC, 0xBE8B9D15, 0xB0D84224, 0xD7E9176A, 0x5C97EE8D, 0x7D23952C},
|
|
|
|
@@ -121,7 +85,7 @@ uint32_t l_private[10][NUM_ECC_DIGITS] = {
|
|
|
|
|
{0xE1C5244B, 0x9137E9E7, 0xD61F7DD0, 0x47200D7B, 0x71707AA7, 0x3BAF4CAE},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
EccPoint l_public[10] = {
|
|
|
|
|
EccPoint g_public[10] = {
|
|
|
|
|
{{0x58379FA5, 0xBF0AD3C0, 0x43C46341, 0x03C17E4C, 0x141E4B2D, 0x9262FBC4},
|
|
|
|
|
{0xFD42BF5B, 0x2DA93B96, 0xA2F44FD2, 0xE49AC322, 0x325AD938, 0x7EC78924}},
|
|
|
|
|
{{0xD43D49BD, 0x5E3EDC91, 0xC4B92D43, 0x23ABD7AC, 0x2393E81F, 0xAA44251A},
|
|
|
|
@@ -143,48 +107,73 @@ EccPoint l_public[10] = {
|
|
|
|
|
{{0xC0875126, 0x9734E867, 0x076D4DE0, 0x6EBEA5AE, 0x3CFC3372, 0xD6A91E78},
|
|
|
|
|
{0xE103662D, 0x139FD338, 0x791610BA, 0xDE584994, 0xA12D8DA4, 0x63270A3E}},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#elif (ECC_CURVE == secp224r1)
|
|
|
|
|
|
|
|
|
|
uint32_t l_private[10][NUM_ECC_DIGITS] = {
|
|
|
|
|
{0x92AC5997, 0x85C91711, 0xF8A13710, 0xB9EF3C09, 0xED2F58C0, 0x5FC2D1A8, 0x05379943},
|
|
|
|
|
{0x71E13CFC, 0xC1D3459C, 0x82A9567B, 0x2D38D833, 0x85295F9E, 0x56E449D5, 0x9D29AF69},
|
|
|
|
|
{0x58101AEB, 0x3314B044, 0x5A979527, 0xA6C0A4BA, 0x6534A4E2, 0x979C462B, 0x0F1A0960},
|
|
|
|
|
{0x7CCF094C, 0x65BAA176, 0x3C3218E0, 0x257F50B0, 0x432109DA, 0xC4A5BADF, 0x0AE8B0EE},
|
|
|
|
|
{0x17767E3C, 0x99B7E746, 0x38056BEB, 0x4D63D59C, 0xA473AD5C, 0x9A7CCA10, 0x401AAA68},
|
|
|
|
|
{0x5FC80559, 0x7754B9BA, 0xD23B019C, 0x1772CF93, 0x76A98671, 0xE2240032, 0x6A86A803},
|
|
|
|
|
{0x90B9AD65, 0xE9B1348F, 0xECF90E1F, 0x85115D89, 0x020EE62F, 0xFE3BE819, 0x6B6411B0},
|
|
|
|
|
{0xDD1AEEE8, 0x4E27AC27, 0xE2DB0334, 0x0408D903, 0xF067C0FA, 0x254941A9, 0xAF44C655},
|
|
|
|
|
{0x07404A6C, 0xF5D42FDE, 0xE1825FDA, 0x7685EEB1, 0x5EDD1625, 0xB32873D7, 0x4B4A0352},
|
|
|
|
|
{0xAE0FB333, 0x75F97D91, 0xB5EF8049, 0x341469C0, 0x5FFE358A, 0xB81E22B3, 0x85AFDCEB},
|
|
|
|
|
EccPoint g_dsa_public[10] = {
|
|
|
|
|
{{0x4F4D9AAA, 0xAF60E114, 0x87991189, 0x1D24E7D3, 0x44760D0F, 0x9E1260BE},
|
|
|
|
|
{0x9ED2F42B, 0x8B29265B, 0x8D6D800E, 0xBF05A3D2, 0x10604D33, 0xC9A56477}},
|
|
|
|
|
{{0x29056368, 0x8281C7F2, 0x522BF2E9, 0xFC23BF79, 0xF9F2F269, 0xE27D0965},
|
|
|
|
|
{0x4EF1C035, 0x3103FCD2, 0x67A056F1, 0x190A319D, 0x27BE1292, 0x734D6D12}},
|
|
|
|
|
{{0x89BE85C6, 0x1130FBF1, 0x1288B622, 0x7F6891F0, 0xBA863A0E, 0x932669D1},
|
|
|
|
|
{0x4AB1D95D, 0x7E0F41BE, 0xCA1F2313, 0x0A533CDA, 0xDC7585B3, 0x12BAB148}},
|
|
|
|
|
{{0xF667FF6E, 0xC5C2C25E, 0x5EC82FC7, 0xF9164E06, 0xD139DDC5, 0xE1B80602},
|
|
|
|
|
{0xD1B02660, 0x7ED41D69, 0x32CB6EA8, 0x7624EC39, 0xE21488C3, 0xE0DF21BF}},
|
|
|
|
|
{{0x46A619F7, 0x0A8432F2, 0xF83A496B, 0x7A5C308F, 0x7877086A, 0x1826FF66},
|
|
|
|
|
{0xE3E8745C, 0xA2409D62, 0x2D382294, 0xCB157A6D, 0x5614ED7B, 0x7B18F718}},
|
|
|
|
|
{{0x2F1A3D3C, 0x88D0169B, 0xAA1D7280, 0xA212860B, 0x1D597CBC, 0xD584C38F},
|
|
|
|
|
{0x4910C071, 0x23CA1B76, 0x4B5D8709, 0x7388E349, 0x375037EA, 0xEF7268AA}},
|
|
|
|
|
{{0x4E3D4333, 0xBD81D238, 0xE767795F, 0xBD4B77EA, 0xF6601C06, 0xE1B28D5E},
|
|
|
|
|
{0xAB80539B, 0xFCA494CB, 0xB2E41F4E, 0xC07A1457, 0xD7F85503, 0x4C174309}},
|
|
|
|
|
{{0x77DD00F9, 0x09AEF548, 0xFF0DEA5B, 0xD74DF166, 0x13E26432, 0x231777B7},
|
|
|
|
|
{0x08BD4BB5, 0x8F95C762, 0x04B85D29, 0x543E067D, 0x1CD608C3, 0x3875DAE1}},
|
|
|
|
|
{{0x0EFE1F6B, 0x34E0D176, 0x371B1B4D, 0x6CE37184, 0xAA65F8D9, 0x20BFA9FA},
|
|
|
|
|
{0xA73D521A, 0xEDBA519D, 0xE3284D58, 0x746F7B33, 0x2143470F, 0x691A594B}},
|
|
|
|
|
{{0x07E1B563, 0x2D36492C, 0x70D6A263, 0x25083938, 0x865E89AC, 0x9838B413},
|
|
|
|
|
{0xCEB52B3C, 0x7E44966A, 0x11626ACF, 0x877B0C41, 0x27C8DC61, 0xAFB47795}}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
EccPoint l_public[10] = {
|
|
|
|
|
{{0xC0E193E3, 0x4FB8BA6A, 0xAED1B8B3, 0x4CE14165, 0x6ED64060, 0x45F753E9, 0xE856C26B},
|
|
|
|
|
{0x840CFBBF, 0x4AD23EC7, 0x9643DDD5, 0x2398AADB, 0x2671E9AE, 0x53FEB7D2, 0x5588FA2E}},
|
|
|
|
|
{{0x56763605, 0x69A8DCCC, 0x7A08E088, 0xCD37D76E, 0xB3ED9983, 0xC356B453, 0x29B64C50},
|
|
|
|
|
{0x262334E8, 0xBF47A9D8, 0xC0B6B6A0, 0x702F8D14, 0xFE223A00, 0x71D3D3F2, 0xB29160DB}},
|
|
|
|
|
{{0xADE4E689, 0x59856843, 0x9D645347, 0x23010224, 0x1CD5A3B1, 0xEEBB9812, 0xCF9F3F43},
|
|
|
|
|
{0x2430E70E, 0x1B658CA6, 0xFA750FE4, 0x80F0A665, 0x003F0672, 0xA36E2090, 0xDD37CC35}},
|
|
|
|
|
{{0xDF8962B9, 0x15FB4F53, 0x16564E03, 0xBBC50F49, 0x03A5EEE2, 0x9C15B452, 0xDF0BF344},
|
|
|
|
|
{0x2D679C04, 0x35114D05, 0xAD1D896A, 0xB96C0DB3, 0xF9022FE2, 0x82E0B6F0, 0xB7D50575}},
|
|
|
|
|
{{0x080DC73F, 0xFBE8E026, 0xA569523C, 0x66B05A36, 0xA7D235A5, 0xEBFBA207, 0x0C04C9EE},
|
|
|
|
|
{0x2157E8F5, 0x21C0EEEE, 0x77961453, 0x83CFBBA4, 0x835875D8, 0xF7F726A8, 0x28D46252}},
|
|
|
|
|
{{0xE5124225, 0x30A19D5C, 0xFCB08F75, 0x5EED266C, 0x7D37E550, 0x4F4B60E2, 0x72D0CB79},
|
|
|
|
|
{0xCDC65EF6, 0x75577362, 0xBA34C393, 0x9A2756CD, 0x3828FC90, 0x9B0993CC, 0x1CAA34DE}},
|
|
|
|
|
{{0x829E678C, 0xD9C1260C, 0x2E03A902, 0x6801C11B, 0x6CDF197A, 0x22BF0AD7, 0x8D0448EE},
|
|
|
|
|
{0x19B229ED, 0x8DFDA351, 0x914470E9, 0x6DD45306, 0xC7B24A93, 0x52DC7572, 0xA4D1066F}},
|
|
|
|
|
{{0x8304A31C, 0x25C7BD86, 0xB0714747, 0x2937CEAA, 0x0DA87B9B, 0xA3E1853A, 0x3B0BCDA8},
|
|
|
|
|
{0xE198F4BD, 0xACF97B55, 0xBA0E1189, 0xB943DB95, 0xEBE3F9B2, 0xBAFD8F70, 0xF02687FE}},
|
|
|
|
|
{{0x2D3460BB, 0xCED2D599, 0x580D0FF6, 0x82F3BD94, 0x0357697F, 0x3ECE00AE, 0xC134FE5E},
|
|
|
|
|
{0xC043A9ED, 0xD595CDE2, 0x19D4EF60, 0x9EB2EDF4, 0xA9C63F43, 0x18A2725D, 0x350281E7}},
|
|
|
|
|
{{0x375F82B6, 0x57F105DB, 0x2498AF90, 0xBDA2D0C3, 0xD2725B8F, 0xB8E84089, 0x33786485},
|
|
|
|
|
{0x7B5AEEFB, 0x3F647259, 0x3D6F657B, 0x8631BB47, 0x9E11465B, 0x5F6A4BBB, 0x5252EF11}},
|
|
|
|
|
uint32_t g_dsa_hash[10][NUM_ECC_DIGITS] = {
|
|
|
|
|
{0x1D6C1379, 0xDAD42F9B, 0x8BD6A2F0, 0xACD26FBF, 0xC40B6F7C, 0x0462B9CA},
|
|
|
|
|
{0x94EDAF2C, 0x347C7F9B, 0x4FBF8D41, 0x9AF1A2B4, 0x4883C4AC, 0x15E6B84E},
|
|
|
|
|
{0x8AEA8A44, 0x91B53FE0, 0x461713BC, 0xB151F4B7, 0x0211034B, 0x1CD92170},
|
|
|
|
|
{0x895590EB, 0xBD754683, 0xAEE1E187, 0x9B2B57F4, 0x3AC0D433, 0x96ABA630},
|
|
|
|
|
{0xA03CF2A7, 0x8AE3D7E6, 0x36873257, 0x78750301, 0x7A0FD080, 0x86FBC5C8},
|
|
|
|
|
{0x679D91BE, 0x7B846175, 0x2DE64CD4, 0x1901A18A, 0x519752CF, 0x6E28C9F7},
|
|
|
|
|
{0xC803BB9F, 0x96299814, 0x60716A01, 0x06E90392, 0x9C668935, 0x96526018},
|
|
|
|
|
{0x5175B32C, 0x07DE2523, 0xAFAE4505, 0xABA98543, 0x83EDD1FA, 0x837E9D54},
|
|
|
|
|
{0x1960CA88, 0xF4879B3E, 0x403D074A, 0x7A1285B3, 0xEF0D69B8, 0x7111561E},
|
|
|
|
|
{0xA53D68EA, 0x01F24797, 0x34638643, 0x53B91EC2, 0xD92DEF7A, 0xE779C5E3}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
uint32_t g_dsa_r[10][NUM_ECC_DIGITS] = {
|
|
|
|
|
{0xB2DC9D7D, 0x5C3843F4, 0x3294B09D, 0x64AF06E0, 0x53BF1B00, 0x9B20E041},
|
|
|
|
|
{0x0BF4F758, 0x77135710, 0x7267B744, 0x35BE95C1, 0xD50D3514, 0xD5951D31},
|
|
|
|
|
{0x62988734, 0x5BA7FD18, 0x5F8C653B, 0xADCE852F, 0x2EF10629, 0x428B1E54},
|
|
|
|
|
{0x11AA8309, 0x0565383E, 0xBD70FA44, 0xABFFD3F9, 0x70DC9311, 0x1B9F4F60},
|
|
|
|
|
{0x9129F76D, 0xC60721BB, 0x32AA3511, 0x0E3A7BDF, 0xEFF2DC3C, 0xC61BF26D},
|
|
|
|
|
{0xA701081F, 0xA4E74046, 0x2AFE9D9C, 0xDF4882E2, 0x5E14736F, 0x10CCC340},
|
|
|
|
|
{0x33D4818D, 0x05A8EE0F, 0xE47BC3FB, 0x098C7DE9, 0x9E3049EF, 0xB3ABFEC3},
|
|
|
|
|
{0xFF4D2A1C, 0xC72985B3, 0x9FD30478, 0x33B2F18F, 0x512734E4, 0x8202C268},
|
|
|
|
|
{0x840AE2BD, 0xE1E2B411, 0xFF7C8F81, 0xEDEFC367, 0x42E8D60A, 0x5992F6B0},
|
|
|
|
|
{0xCA211178, 0x149DC446, 0x321126E2, 0x4E326C5D, 0xA1910BE2, 0x8E057701}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
uint32_t g_dsa_s[10][NUM_ECC_DIGITS] = {
|
|
|
|
|
{0x459523A1, 0x119C77B6, 0x52A062CB, 0xA220571A, 0xC23E9B63, 0x931CAAFE},
|
|
|
|
|
{0x491E1E0E, 0x17E23812, 0x34126B62, 0x4B4EF2A7, 0x030D94BE, 0xD586D8B3},
|
|
|
|
|
{0xC088596E, 0x9FE84270, 0xCE794B6E, 0xD3F7D6DF, 0xD235CE8B, 0x50312465},
|
|
|
|
|
{0xB0208487, 0x9891CECC, 0x17A249F9, 0xADFEBA80, 0xAC66DF48, 0x3DD853C5},
|
|
|
|
|
{0x357ECBA5, 0x92801B5B, 0x98DA57E7, 0xD36CD45A, 0xCC159F90, 0x08154DCA},
|
|
|
|
|
{0xB11CFA8B, 0x47D47046, 0x175EEB76, 0xC2B29A8D, 0xD097A3CB, 0xEFD653BF},
|
|
|
|
|
{0xF988EF59, 0xE2210C4F, 0x8550D2EA, 0x807374B5, 0x35E5AA89, 0x2D7B1A39},
|
|
|
|
|
{0x10C12F34, 0x3725D114, 0x0FC1B44C, 0x3F3170BA, 0x7B1E82AD, 0x331B5FC3},
|
|
|
|
|
{0x2CE9055C, 0xAB799864, 0x0D5F4262, 0x08FD3096, 0xA8A32173, 0xFECF632F},
|
|
|
|
|
{0x9C498FC9, 0x4FF7DCAC, 0xAD9B3A23, 0xAF9F3904, 0x5AD7681C, 0xA1C1C2E4}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#elif (ECC_CURVE == secp256r1)
|
|
|
|
|
|
|
|
|
|
uint32_t l_private[10][NUM_ECC_DIGITS] = {
|
|
|
|
|
uint32_t g_private[10][NUM_ECC_DIGITS] = {
|
|
|
|
|
{0x9399E0FA, 0xEB887947, 0xFACC412E, 0xC7AFD411, 0x735EE1E8, 0x2B8AFAF4, 0x986E3E7F, 0x742B1953},
|
|
|
|
|
{0x079F480E, 0x41BB4E51, 0x76EEA661, 0xE7B5665D, 0xDF831ED8, 0x2304A3FB, 0x80721097, 0xD06D913A},
|
|
|
|
|
{0x4631C4C3, 0x7C834C62, 0x14208F18, 0x4EE69B3E, 0xFBA45EEE, 0xB3007D73, 0x18BBBA55, 0x3562A76D},
|
|
|
|
@@ -197,7 +186,7 @@ uint32_t l_private[10][NUM_ECC_DIGITS] = {
|
|
|
|
|
{0x14A5AC82, 0x34F7EC3E, 0xC70665AA, 0xB387BD6E, 0x639CA247, 0x83CD78A6, 0xD1E26A2C, 0x0C8BFEC3},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
EccPoint l_public[10] = {
|
|
|
|
|
EccPoint g_public[10] = {
|
|
|
|
|
{{0x3A2AA077, 0x64E128B2, 0x04283263, 0x855DD786, 0x84517CA5, 0x79EEB9C4, 0x4761C4D9, 0x4851C11A},
|
|
|
|
|
{0xE2C8E320, 0x585715E0, 0x0B9C17B9, 0x08C4EC62, 0xB773B9C6, 0x4035ADB7, 0x0D1DD194, 0x2A5BD99F}},
|
|
|
|
|
{{0xC8220251, 0x2BA5B0B7, 0x8A4FBDEC, 0x084E14F3, 0x60A067FC, 0x6DA71E54, 0xF114F6BC, 0x4F8636A6},
|
|
|
|
@@ -222,7 +211,7 @@ EccPoint l_public[10] = {
|
|
|
|
|
|
|
|
|
|
#elif (ECC_CURVE == secp384r1)
|
|
|
|
|
|
|
|
|
|
uint32_t l_private[10][NUM_ECC_DIGITS] = {
|
|
|
|
|
uint32_t g_private[10][NUM_ECC_DIGITS] = {
|
|
|
|
|
{0x32D5EFC6, 0x0A6E70F1, 0x6CAE9125, 0x78D74ECF, 0x33E423FB, 0x2B9F9991, 0x188E04C0, 0x6FEA1C8E, 0x2B2634A3, 0xDC5C521A, 0xDBF7265D, 0xB2975791},
|
|
|
|
|
{0xE3C04C90, 0x14F9D46B, 0x67B1B5B9, 0xB1634716, 0xF22C2A3C, 0xF6E316E5, 0x83AD27DB, 0x7E2C5F0A, 0x7D963221, 0xB5949669, 0x24D3CF9B, 0xECFB5D62},
|
|
|
|
|
{0xAE2CD960, 0x967D0340, 0x63D9DBB7, 0x1ACC2775, 0xF4384742, 0x1E80A08C, 0xAC147E25, 0x816980AB, 0x4E328750, 0x74DFC446, 0xF97F88D8, 0xB7F41F61},
|
|
|
|
@@ -234,7 +223,7 @@ uint32_t l_private[10][NUM_ECC_DIGITS] = {
|
|
|
|
|
{0x97401DB7, 0x470838F2, 0xA19A58D3, 0xF076BF50, 0xDFF21694, 0x1B8F8455, 0x653549B0, 0x1CCE5CFD, 0x66F90BBA, 0x09BF73AA, 0x1D01275D, 0xCEEB698B},
|
|
|
|
|
{0xB86CA4E0, 0x64F504D2, 0x5E2B318E, 0x7AD31C33, 0x3F293C53, 0xA0346206, 0x2ACA2DD4, 0x5BC53F6B, 0x3BB83FC2, 0xFC7DD83D, 0xC9CDD04A, 0x15DF8AD8},
|
|
|
|
|
};
|
|
|
|
|
EccPoint l_public[10] = {
|
|
|
|
|
EccPoint g_public[10] = {
|
|
|
|
|
{{0x65E712A5, 0xEDE6358A, 0xD8832C43, 0xE219F022, 0x38407198, 0xC5B58725, 0x14422FF2, 0x7D30DD2E, 0xCF59C6A9, 0x63B30AEF, 0x0EEBE494, 0x1E47A816},
|
|
|
|
|
{0x1E1CF55A, 0xDCC29967, 0xE59976B8, 0x5B6BDB4E, 0x52FF2D3F, 0x9C479240, 0xD14CA6B6, 0x2347BBFC, 0x7699F6E7, 0x0982F63D, 0xCE4805FC, 0x7D812D30}},
|
|
|
|
|
{{0xBA5F2023, 0x88C842A6, 0x46DFEA58, 0xD87B5F24, 0xCE9BE9A1, 0xBBCB9F4F, 0xD94DBDDB, 0x2B2C5EB7, 0x0F6DF89F, 0xDB7D9CA6, 0x1F23435E, 0x18F86C99},
|
|
|
|
@@ -271,7 +260,7 @@ int main()
|
|
|
|
|
for(i=0; i<10; ++i)
|
|
|
|
|
{
|
|
|
|
|
uint64_t l_start = getTimeMs();
|
|
|
|
|
ecdh_shared_secret(l_shared, &l_public[i], l_private[i]);
|
|
|
|
|
ecdh_shared_secret(l_shared, &g_public[i], g_private[i]);
|
|
|
|
|
uint64_t l_diff = getTimeMs() - l_start;
|
|
|
|
|
vli_print(l_shared);
|
|
|
|
|
printf("\n");
|
|
|
|
@@ -279,7 +268,22 @@ int main()
|
|
|
|
|
l_total += l_diff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
printf("Total time: %llu\n", l_total);
|
|
|
|
|
printf("Total ECDH time: %llu\n", l_total);
|
|
|
|
|
|
|
|
|
|
l_total = 0;
|
|
|
|
|
for(i=0; i<10; ++i)
|
|
|
|
|
{
|
|
|
|
|
uint64_t l_start = getTimeMs();
|
|
|
|
|
if(!ecdsa_verify(&g_dsa_public[i], g_dsa_hash[i], g_dsa_r[i], g_dsa_s[i]))
|
|
|
|
|
{
|
|
|
|
|
printf("ecdsa_verify() failed\n");
|
|
|
|
|
}
|
|
|
|
|
uint64_t l_diff = getTimeMs() - l_start;
|
|
|
|
|
printf("Time = %llu\n", l_diff);
|
|
|
|
|
l_total += l_diff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
printf("Total ECDSA time: %llu\n", l_total);
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
}
|