This is an automated email from the ASF dual-hosted git repository. kmccusker pushed a commit to branch fix-testall in repository https://gitbox.apache.org/repos/asf/incubator-milagro-crypto-c.git
commit 66788eb368a36c0af06f1b6353efcb40b21b03cd Author: Kealan McCusker <[email protected]> AuthorDate: Tue Jun 4 12:33:37 2019 +0100 fix multi curve smoke test --- examples/testall.c | 72 +++++++++++++++++----------------- buildMulti.sh => scripts/buildMulti.sh | 4 +- 2 files changed, 38 insertions(+), 38 deletions(-) diff --git a/examples/testall.c b/examples/testall.c index ec961db..44546aa 100644 --- a/examples/testall.c +++ b/examples/testall.c @@ -17,7 +17,7 @@ specific language governing permissions and limitations under the License. */ -/* test driver and function exerciser for ECDH/ECIES/ECDSA API Functions */ +/* An example of using multiple curves in an executible */ #include <stdio.h> #include <stdlib.h> @@ -43,7 +43,7 @@ int ecdh_ED25519(csprng *RNG) // Note salt must be big enough to include an appended word // Note ECIES ciphertext C must be big enough to include at least 1 appended block // Recall EFS_ED25519 is field size in bytes. So EFS_ED25519=32 for 256-bit curve - char s0[2*EGS_ED25519],s1[EGS_ED25519],w0[2*EFS_ED25519+1],w1[2*EFS_ED25519+1],z0[EFS_ED25519],z1[EFS_ED25519],key[EAS_ED25519],salt[40],pw[40]; + char s0[2*EGS_ED25519],s1[EGS_ED25519],w0[2*EFS_ED25519+1],w1[2*EFS_ED25519+1],z0[EFS_ED25519],z1[EFS_ED25519],key[AESKEY_ED25519],salt[40],pw[40]; octet S0= {0,sizeof(s0),s0}; octet S1= {0,sizeof(s1),s1}; octet W0= {0,sizeof(w0),w0}; @@ -64,7 +64,7 @@ int ecdh_ED25519(csprng *RNG) // private key S0 of size EGS_ED25519 bytes derived from Password and Salt - PBKDF2(HASH_TYPE_ECC_ED25519,&PW,&SALT,1000,EGS_ED25519,&S0); + PBKDF2(HASH_TYPE_ED25519,&PW,&SALT,1000,EGS_ED25519,&S0); printf("Alices private key= 0x"); OCT_output(&S0); @@ -106,7 +106,7 @@ int ecdh_ED25519(csprng *RNG) return 0; } - KDF2(HASH_TYPE_ECC_ED25519,&Z0,NULL,EAS_ED25519,&KEY); + KDF2(HASH_TYPE_ED25519,&Z0,NULL,AESKEY_ED25519,&KEY); printf("Alice's DH Key= 0x"); OCT_output(&KEY); @@ -140,7 +140,7 @@ int ecdh_ED25519(csprng *RNG) M.len=17; for (i=0; i<=16; i++) M.val[i]=i; - ECP_ED25519_ECIES_ENCRYPT(HASH_TYPE_ECC_ED25519,&P1,&P2,RNG,&W1,&M,12,&V,&C,&T); + ECP_ED25519_ECIES_ENCRYPT(HASH_TYPE_ED25519,&P1,&P2,RNG,&W1,&M,12,&V,&C,&T); printf("Ciphertext= \n"); printf("V= 0x"); @@ -150,7 +150,7 @@ int ecdh_ED25519(csprng *RNG) printf("T= 0x"); OCT_output(&T); - if (!ECP_ED25519_ECIES_DECRYPT(HASH_TYPE_ECC_ED25519,&P1,&P2,&V,&C,&T,&S1,&M)) + if (!ECP_ED25519_ECIES_DECRYPT(HASH_TYPE_ED25519,&P1,&P2,&V,&C,&T,&S1,&M)) { printf("*** ECIES Decryption Failed\n"); return 0; @@ -163,7 +163,7 @@ int ecdh_ED25519(csprng *RNG) printf("Testing ECDSA\n"); - if (ECP_ED25519_SP_DSA(HASH_TYPE_ECC_ED25519,RNG,NULL,&S0,&M,&CS,&DS)!=0) + if (ECP_ED25519_SP_DSA(HASH_TYPE_ED25519,RNG,NULL,&S0,&M,&CS,&DS)!=0) { printf("***ECDSA Signature Failed\n"); return 0; @@ -174,7 +174,7 @@ int ecdh_ED25519(csprng *RNG) printf("Signature D = 0x"); OCT_output(&DS); - if (ECP_ED25519_VP_DSA(HASH_TYPE_ECC_ED25519,&W0,&M,&CS,&DS)!=0) + if (ECP_ED25519_VP_DSA(HASH_TYPE_ED25519,&W0,&M,&CS,&DS)!=0) { printf("***ECDSA Verification Failed\n"); return 0; @@ -199,7 +199,7 @@ int ecdh_NIST256(csprng *RNG) // Note salt must be big enough to include an appended word // Note ECIES ciphertext C must be big enough to include at least 1 appended block // Recall EFS_NIST256 is field size in bytes. So EFS_NIST256=32 for 256-bit curve - char s0[2*EGS_NIST256],s1[EGS_NIST256],w0[2*EFS_NIST256+1],w1[2*EFS_NIST256+1],z0[EFS_NIST256],z1[EFS_NIST256],key[EAS_NIST256],salt[40],pw[40]; + char s0[2*EGS_NIST256],s1[EGS_NIST256],w0[2*EFS_NIST256+1],w1[2*EFS_NIST256+1],z0[EFS_NIST256],z1[EFS_NIST256],key[AESKEY_NIST256],salt[40],pw[40]; octet S0= {0,sizeof(s0),s0}; octet S1= {0,sizeof(s1),s1}; octet W0= {0,sizeof(w0),w0}; @@ -220,7 +220,7 @@ int ecdh_NIST256(csprng *RNG) // private key S0 of size EGS_NIST256 bytes derived from Password and Salt - PBKDF2(HASH_TYPE_ECC_NIST256,&PW,&SALT,1000,EGS_NIST256,&S0); + PBKDF2(HASH_TYPE_NIST256,&PW,&SALT,1000,EGS_NIST256,&S0); printf("Alices private key= 0x"); OCT_output(&S0); @@ -262,7 +262,7 @@ int ecdh_NIST256(csprng *RNG) return 0; } - KDF2(HASH_TYPE_ECC_NIST256,&Z0,NULL,EAS_NIST256,&KEY); + KDF2(HASH_TYPE_NIST256,&Z0,NULL,AESKEY_NIST256,&KEY); printf("Alice's DH Key= 0x"); OCT_output(&KEY); @@ -296,7 +296,7 @@ int ecdh_NIST256(csprng *RNG) M.len=17; for (i=0; i<=16; i++) M.val[i]=i; - ECP_NIST256_ECIES_ENCRYPT(HASH_TYPE_ECC_NIST256,&P1,&P2,RNG,&W1,&M,12,&V,&C,&T); + ECP_NIST256_ECIES_ENCRYPT(HASH_TYPE_NIST256,&P1,&P2,RNG,&W1,&M,12,&V,&C,&T); printf("Ciphertext= \n"); printf("V= 0x"); @@ -306,7 +306,7 @@ int ecdh_NIST256(csprng *RNG) printf("T= 0x"); OCT_output(&T); - if (!ECP_NIST256_ECIES_DECRYPT(HASH_TYPE_ECC_NIST256,&P1,&P2,&V,&C,&T,&S1,&M)) + if (!ECP_NIST256_ECIES_DECRYPT(HASH_TYPE_NIST256,&P1,&P2,&V,&C,&T,&S1,&M)) { printf("*** ECIES Decryption Failed\n"); return 0; @@ -319,7 +319,7 @@ int ecdh_NIST256(csprng *RNG) printf("Testing ECDSA\n"); - if (ECP_NIST256_SP_DSA(HASH_TYPE_ECC_NIST256,RNG,NULL,&S0,&M,&CS,&DS)!=0) + if (ECP_NIST256_SP_DSA(HASH_TYPE_NIST256,RNG,NULL,&S0,&M,&CS,&DS)!=0) { printf("***ECDSA Signature Failed\n"); return 0; @@ -330,7 +330,7 @@ int ecdh_NIST256(csprng *RNG) printf("Signature D = 0x"); OCT_output(&DS); - if (ECP_NIST256_VP_DSA(HASH_TYPE_ECC_NIST256,&W0,&M,&CS,&DS)!=0) + if (ECP_NIST256_VP_DSA(HASH_TYPE_NIST256,&W0,&M,&CS,&DS)!=0) { printf("***ECDSA Verification Failed\n"); return 0; @@ -354,7 +354,7 @@ int ecdh_GOLDILOCKS(csprng *RNG) // Note salt must be big enough to include an appended word // Note ECIES ciphertext C must be big enough to include at least 1 appended block // Recall EFS_GOLDILOCKS is field size in bytes. So EFS_GOLDILOCKS=32 for 256-bit curve - char s0[2*EGS_GOLDILOCKS],s1[EGS_GOLDILOCKS],w0[2*EFS_GOLDILOCKS+1],w1[2*EFS_GOLDILOCKS+1],z0[EFS_GOLDILOCKS],z1[EFS_GOLDILOCKS],key[EAS_GOLDILOCKS],salt[40],pw[40]; + char s0[2*EGS_GOLDILOCKS],s1[EGS_GOLDILOCKS],w0[2*EFS_GOLDILOCKS+1],w1[2*EFS_GOLDILOCKS+1],z0[EFS_GOLDILOCKS],z1[EFS_GOLDILOCKS],key[AESKEY_GOLDILOCKS],salt[40],pw[40]; octet S0= {0,sizeof(s0),s0}; octet S1= {0,sizeof(s1),s1}; octet W0= {0,sizeof(w0),w0}; @@ -375,7 +375,7 @@ int ecdh_GOLDILOCKS(csprng *RNG) // private key S0 of size EGS_GOLDILOCKS bytes derived from Password and Salt - PBKDF2(HASH_TYPE_ECC_GOLDILOCKS,&PW,&SALT,1000,EGS_GOLDILOCKS,&S0); + PBKDF2(HASH_TYPE_GOLDILOCKS,&PW,&SALT,1000,EGS_GOLDILOCKS,&S0); printf("Alices private key= 0x"); OCT_output(&S0); @@ -417,7 +417,7 @@ int ecdh_GOLDILOCKS(csprng *RNG) return 0; } - KDF2(HASH_TYPE_ECC_GOLDILOCKS,&Z0,NULL,EAS_GOLDILOCKS,&KEY); + KDF2(HASH_TYPE_GOLDILOCKS,&Z0,NULL,AESKEY_GOLDILOCKS,&KEY); printf("Alice's DH Key= 0x"); OCT_output(&KEY); @@ -451,7 +451,7 @@ int ecdh_GOLDILOCKS(csprng *RNG) M.len=17; for (i=0; i<=16; i++) M.val[i]=i; - ECP_GOLDILOCKS_ECIES_ENCRYPT(HASH_TYPE_ECC_GOLDILOCKS,&P1,&P2,RNG,&W1,&M,12,&V,&C,&T); + ECP_GOLDILOCKS_ECIES_ENCRYPT(HASH_TYPE_GOLDILOCKS,&P1,&P2,RNG,&W1,&M,12,&V,&C,&T); printf("Ciphertext= \n"); printf("V= 0x"); @@ -461,7 +461,7 @@ int ecdh_GOLDILOCKS(csprng *RNG) printf("T= 0x"); OCT_output(&T); - if (!ECP_GOLDILOCKS_ECIES_DECRYPT(HASH_TYPE_ECC_GOLDILOCKS,&P1,&P2,&V,&C,&T,&S1,&M)) + if (!ECP_GOLDILOCKS_ECIES_DECRYPT(HASH_TYPE_GOLDILOCKS,&P1,&P2,&V,&C,&T,&S1,&M)) { printf("*** ECIES Decryption Failed\n"); return 0; @@ -474,7 +474,7 @@ int ecdh_GOLDILOCKS(csprng *RNG) printf("Testing ECDSA\n"); - if (ECP_GOLDILOCKS_SP_DSA(HASH_TYPE_ECC_GOLDILOCKS,RNG,NULL,&S0,&M,&CS,&DS)!=0) + if (ECP_GOLDILOCKS_SP_DSA(HASH_TYPE_GOLDILOCKS,RNG,NULL,&S0,&M,&CS,&DS)!=0) { printf("***ECDSA Signature Failed\n"); return 0; @@ -485,7 +485,7 @@ int ecdh_GOLDILOCKS(csprng *RNG) printf("Signature D = 0x"); OCT_output(&DS); - if (ECP_GOLDILOCKS_VP_DSA(HASH_TYPE_ECC_GOLDILOCKS,&W0,&M,&CS,&DS)!=0) + if (ECP_GOLDILOCKS_VP_DSA(HASH_TYPE_GOLDILOCKS,&W0,&M,&CS,&DS)!=0) { printf("***ECDSA Verification Failed\n"); return 0; @@ -558,7 +558,7 @@ int mpin_BN254CX(csprng *RNG) // Create Client Identity OCT_jstring(&CLIENT_ID,"[email protected]"); - HASH_ID(HASH_TYPE_MPIN_BN254CX,&CLIENT_ID,&HCID); // Either Client or TA calculates Hash(ID) - you decide! + HASH_ID(HASH_TYPE_BN254CX,&CLIENT_ID,&HCID); // Either Client or TA calculates Hash(ID) - you decide! printf("Client ID Hash= "); OCT_output(&HCID); @@ -581,7 +581,7 @@ int mpin_BN254CX(csprng *RNG) // Client extracts PIN from secret to create Token pin=1234; printf("Client extracts PIN= %d\n",pin); - MPIN_BN254CX_EXTRACT_PIN(HASH_TYPE_MPIN_BN254CX,&CLIENT_ID,pin,&TOKEN); + MPIN_BN254CX_EXTRACT_PIN(HASH_TYPE_BN254CX,&CLIENT_ID,pin,&TOKEN); printf("Client Token= "); OCT_output(&TOKEN); @@ -593,7 +593,7 @@ int mpin_BN254CX(csprng *RNG) // Client gets "Time Permit" from DTA printf("Client gets Time Permit\n"); - MPIN_BN254CX_GET_CLIENT_PERMIT(HASH_TYPE_MPIN_BN254CX,date,&S,&HCID,&PERMIT); + MPIN_BN254CX_GET_CLIENT_PERMIT(HASH_TYPE_BN254CX,date,&S,&HCID,&PERMIT); printf("Time Permit= "); OCT_output(&PERMIT); @@ -667,7 +667,7 @@ int mpin_BN254CX(csprng *RNG) printf("MPIN Single Pass\n"); timeValue = MPIN_BN254CX_GET_TIME(); - rtn=MPIN_BN254CX_CLIENT(HASH_TYPE_MPIN_BN254CX,date,&CLIENT_ID,RNG,&X,pin,&TOKEN,&SEC,pxID,pxCID,pPERMIT,NULL,timeValue,&Y); + rtn=MPIN_BN254CX_CLIENT(HASH_TYPE_BN254CX,date,&CLIENT_ID,RNG,&X,pin,&TOKEN,&SEC,pxID,pxCID,pPERMIT,NULL,timeValue,&Y); if (rtn != 0) { @@ -680,16 +680,16 @@ int mpin_BN254CX(csprng *RNG) #endif - rtn=MPIN_BN254CX_SERVER(HASH_TYPE_MPIN_BN254CX,date,pHID,pHTID,&Y,&SST,pxID,pxCID,&SEC,pE,pF,pID,NULL,timeValue); + rtn=MPIN_BN254CX_SERVER(HASH_TYPE_BN254CX,date,pHID,pHTID,&Y,&SST,pxID,pxCID,&SEC,pE,pF,pID,NULL,timeValue); #ifdef FULL - HASH_ID(HASH_TYPE_MPIN_BN254CX,&CLIENT_ID,&HSID); // new + HASH_ID(HASH_TYPE_BN254CX,&CLIENT_ID,&HSID); // new MPIN_BN254CX_GET_G1_MULTIPLE(RNG,0,&W,prHID,&T); // Also send T=w.ID to client, remember random w #endif #else // SINGLE_PASS printf("MPIN Multi Pass\n"); - if (MPIN_BN254CX_CLIENT_1(HASH_TYPE_MPIN_BN254CX,date,&CLIENT_ID,RNG,&X,pin,&TOKEN,&SEC,pxID,pxCID,pPERMIT)!=0) + if (MPIN_BN254CX_CLIENT_1(HASH_TYPE_BN254CX,date,&CLIENT_ID,RNG,&X,pin,&TOKEN,&SEC,pxID,pxCID,pPERMIT)!=0) { printf("Error from Client side - First Pass\n"); return 0; @@ -698,18 +698,18 @@ int mpin_BN254CX(csprng *RNG) // Send U=x.ID to server, and recreate secret from token and pin #ifdef FULL - HASH_ID(HASH_TYPE_MPIN_BN254CX,&CLIENT_ID,&HCID); + HASH_ID(HASH_TYPE_BN254CX,&CLIENT_ID,&HCID); MPIN_BN254CX_GET_G1_MULTIPLE(RNG,1,&R,&HCID,&Z); // Also Send Z=r.ID to Server, remember random r, DH component #endif // Server calculates H(ID) and H(ID)+H(T|H(ID)) (if time permits enabled), and maps them to points on the curve HID and HTID resp. - MPIN_BN254CX_SERVER_1(HASH_TYPE_MPIN_BN254CX,date,pID,pHID,pHTID); + MPIN_BN254CX_SERVER_1(HASH_TYPE_BN254CX,date,pID,pHID,pHTID); // Server generates Random number Y and sends it to Client MPIN_BN254CX_RANDOM_GENERATE(RNG,&Y); #ifdef FULL - HASH_ID(HASH_TYPE_MPIN_BN254CX,&CLIENT_ID,&HSID); //new + HASH_ID(HASH_TYPE_BN254CX,&CLIENT_ID,&HSID); //new MPIN_BN254CX_GET_G1_MULTIPLE(RNG,0,&W,prHID,&T); // Also send T=w.ID to client, remember random w, DH component #endif @@ -745,13 +745,13 @@ int mpin_BN254CX(csprng *RNG) #ifdef FULL - HASH_ALL(HASH_TYPE_MPIN_BN254CX,&HCID,pxID,pxCID,&SEC,&Y,&Z,&T,&H); // new - MPIN_BN254CX_CLIENT_KEY(HASH_TYPE_MPIN_BN254CX,&G1,&G2,pin,&R,&X,&H,&T,&CK); // new H + HASH_ALL(HASH_TYPE_BN254CX,&HCID,pxID,pxCID,&SEC,&Y,&Z,&T,&H); // new + MPIN_BN254CX_CLIENT_KEY(HASH_TYPE_BN254CX,&G1,&G2,pin,&R,&X,&H,&T,&CK); // new H printf("Client Key = "); OCT_output(&CK); - HASH_ALL(HASH_TYPE_MPIN_BN254CX,&HSID,pxID,pxCID,&SEC,&Y,&Z,&T,&H); - MPIN_BN254CX_SERVER_KEY(HASH_TYPE_MPIN_BN254CX,&Z,&SST,&W,&H,pHID,pxID,pxCID,&SK); // new H,pHID + HASH_ALL(HASH_TYPE_BN254CX,&HSID,pxID,pxCID,&SEC,&Y,&Z,&T,&H); + MPIN_BN254CX_SERVER_KEY(HASH_TYPE_BN254CX,&Z,&SST,&W,&H,pHID,pxID,pxCID,&SK); // new H,pHID printf("Server Key = "); OCT_output(&SK); #endif diff --git a/buildMulti.sh b/scripts/buildMulti.sh similarity index 90% rename from buildMulti.sh rename to scripts/buildMulti.sh index cf359f8..3d6ab5b 100755 --- a/buildMulti.sh +++ b/scripts/buildMulti.sh @@ -4,9 +4,9 @@ # # Build test with multiple curves and RSA security levels -# @author Kealan McCusker <[email protected]> +# @author Kealan McCusker <[email protected]> -set -e +# set -e # Build default - see config.mk make clean
