mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
Merge remote branch 'origin/maint-0.2.1' into maint-0.2.2
Conflicts: src/or/config.c src/or/networkstatus.c src/or/rendcommon.c src/or/routerparse.c src/or/test.c
This commit is contained in:
+19
-13
@@ -343,25 +343,27 @@ test_crypto_pk(void)
|
||||
test_eq(128, crypto_pk_keysize(pk1));
|
||||
test_eq(128, crypto_pk_keysize(pk2));
|
||||
|
||||
test_eq(128, crypto_pk_public_encrypt(pk2, data1, "Hello whirled.", 15,
|
||||
test_eq(128, crypto_pk_public_encrypt(pk2, data1, sizeof(data1),
|
||||
"Hello whirled.", 15,
|
||||
PK_PKCS1_OAEP_PADDING));
|
||||
test_eq(128, crypto_pk_public_encrypt(pk1, data2, "Hello whirled.", 15,
|
||||
test_eq(128, crypto_pk_public_encrypt(pk1, data2, sizeof(data1),
|
||||
"Hello whirled.", 15,
|
||||
PK_PKCS1_OAEP_PADDING));
|
||||
/* oaep padding should make encryption not match */
|
||||
test_memneq(data1, data2, 128);
|
||||
test_eq(15, crypto_pk_private_decrypt(pk1, data3, data1, 128,
|
||||
test_eq(15, crypto_pk_private_decrypt(pk1, data3, sizeof(data3), data1, 128,
|
||||
PK_PKCS1_OAEP_PADDING,1));
|
||||
test_streq(data3, "Hello whirled.");
|
||||
memset(data3, 0, 1024);
|
||||
test_eq(15, crypto_pk_private_decrypt(pk1, data3, data2, 128,
|
||||
test_eq(15, crypto_pk_private_decrypt(pk1, data3, sizeof(data3), data2, 128,
|
||||
PK_PKCS1_OAEP_PADDING,1));
|
||||
test_streq(data3, "Hello whirled.");
|
||||
/* Can't decrypt with public key. */
|
||||
test_eq(-1, crypto_pk_private_decrypt(pk2, data3, data2, 128,
|
||||
test_eq(-1, crypto_pk_private_decrypt(pk2, data3, sizeof(data3), data2, 128,
|
||||
PK_PKCS1_OAEP_PADDING,1));
|
||||
/* Try again with bad padding */
|
||||
memcpy(data2+1, "XYZZY", 5); /* This has fails ~ once-in-2^40 */
|
||||
test_eq(-1, crypto_pk_private_decrypt(pk1, data3, data2, 128,
|
||||
test_eq(-1, crypto_pk_private_decrypt(pk1, data3, sizeof(data3), data2, 128,
|
||||
PK_PKCS1_OAEP_PADDING,1));
|
||||
|
||||
/* File operations: save and load private key */
|
||||
@@ -376,19 +378,21 @@ test_crypto_pk(void)
|
||||
get_fname("xyzzy")) < 0);
|
||||
test_assert(! crypto_pk_read_private_key_from_filename(pk2,
|
||||
get_fname("pkey1")));
|
||||
test_eq(15, crypto_pk_private_decrypt(pk2, data3, data1, 128,
|
||||
test_eq(15, crypto_pk_private_decrypt(pk2, data3, sizeof(data3), data1, 128,
|
||||
PK_PKCS1_OAEP_PADDING,1));
|
||||
|
||||
/* Now try signing. */
|
||||
strlcpy(data1, "Ossifrage", 1024);
|
||||
test_eq(128, crypto_pk_private_sign(pk1, data2, data1, 10));
|
||||
test_eq(10, crypto_pk_public_checksig(pk1, data3, data2, 128));
|
||||
test_eq(128, crypto_pk_private_sign(pk1, data2, sizeof(data2), data1, 10));
|
||||
test_eq(10, crypto_pk_public_checksig(pk1, data3, sizeof(data3), data2, 128));
|
||||
test_streq(data3, "Ossifrage");
|
||||
/* Try signing digests. */
|
||||
test_eq(128, crypto_pk_private_sign_digest(pk1, data2, data1, 10));
|
||||
test_eq(20, crypto_pk_public_checksig(pk1, data3, data2, 128));
|
||||
test_eq(128, crypto_pk_private_sign_digest(pk1, data2, sizeof(data2),
|
||||
data1, 10));
|
||||
test_eq(20, crypto_pk_public_checksig(pk1, data3, sizeof(data3), data2, 128));
|
||||
test_eq(0, crypto_pk_public_checksig_digest(pk1, data1, 10, data2, 128));
|
||||
test_eq(-1, crypto_pk_public_checksig_digest(pk1, data1, 11, data2, 128));
|
||||
|
||||
/*XXXX test failed signing*/
|
||||
|
||||
/* Try encoding */
|
||||
@@ -409,9 +413,11 @@ test_crypto_pk(void)
|
||||
continue;
|
||||
p = (i==0)?PK_NO_PADDING:
|
||||
(i==1)?PK_PKCS1_PADDING:PK_PKCS1_OAEP_PADDING;
|
||||
len = crypto_pk_public_hybrid_encrypt(pk1,data2,data1,j,p,0);
|
||||
len = crypto_pk_public_hybrid_encrypt(pk1,data2,sizeof(data2),
|
||||
data1,j,p,0);
|
||||
test_assert(len>=0);
|
||||
len = crypto_pk_private_hybrid_decrypt(pk1,data3,data2,len,p,1);
|
||||
len = crypto_pk_private_hybrid_decrypt(pk1,data3,sizeof(data3),
|
||||
data2,len,p,1);
|
||||
test_eq(len,j);
|
||||
test_memeq(data1,data3,j);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user