Skip to content

Commit ad7bd08

Browse files
authored
Add compressed SIDH and big endian support
1 parent 9f4a286 commit ad7bd08

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

src/P751/P751_compressed_api.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
#define CRYPTO_SECRETKEYBYTES 602 // MSG_BYTES + SECRETKEY_A_BYTES + CRYPTO_PUBLICKEYBYTES + FP2_ENCODED_BYTES bytes
1414
#define CRYPTO_PUBLICKEYBYTES 335 // 3*ORDER_B_ENCODED_BYTES + FP2_ENCODED_BYTES + 3 bytes for shared elligator
1515
#define CRYPTO_BYTES 32
16-
#define CRYPTO_CIPHERTEXTBYTES 410 // COMPRESSED_CHUNK_CT + MSG_BYTES bytes
16+
#define CRYPTO_CIPHERTEXTBYTES 410 // PARTIALLY_COMPRESSED_CHUNK_CT + MSG_BYTES bytes
1717

1818
// Algorithm name
1919
#define CRYPTO_ALGNAME "SIKEp751_compressed"
@@ -37,7 +37,6 @@ int crypto_kem_enc_SIKEp751_compressed(unsigned char *ct, unsigned char *ss, con
3737
int crypto_kem_dec_SIKEp751_compressed(unsigned char *ss, const unsigned char *ct, const unsigned char *sk);
3838

3939

40-
4140
// Encoding of keys for KEM-based isogeny system "SIKEp751" (wire format):
4241
// ----------------------------------------------------------------------
4342
// Elements over GF(p751) are encoded in 94 octets in little endian format (i.e., the least significant octet is located in the lowest memory address).
@@ -73,7 +72,7 @@ void random_mod_order_B_SIDHp751(unsigned char* random_digits);
7372
// Alice's ephemeral public key generation
7473
// Input: a private key PrivateKeyA in the range [0, 2^372 - 1], stored in 47 bytes.
7574
// Output: the public key PublicKeyA consisting of 3 GF(p751^2) elements encoded in 335 bytes.
76-
int EphemeralKeyGeneration_A_SIDHp751_Compressed(unsigned char* PrivateKeyA, unsigned char* PublicKeyA);
75+
int EphemeralKeyGeneration_A_SIDHp751_Compressed(const unsigned char* PrivateKeyA, unsigned char* PublicKeyA);
7776

7877
// Bob's ephemeral key-pair generation
7978
// It produces a private key PrivateKeyB and computes the public key PublicKeyB.
@@ -86,7 +85,7 @@ int EphemeralKeyGeneration_B_SIDHp751_Compressed(const unsigned char* PrivateKey
8685
// Inputs: Alice's PrivateKeyA is an integer in the range [0, 2^372 - 1], stored in 47 bytes.
8786
// Bob's PublicKeyB consists of 3 GF(p751^2) elements encoded in 335 bytes.
8887
// Output: a shared secret SharedSecretA that consists of one element in GF(p751^2) encoded in 188 bytes.
89-
int EphemeralSecretAgreement_A_SIDHp751_Compressed(const unsigned char* PrivateKeyA, const unsigned char* PublicKeyB, unsigned char* SharedSecretA, unsigned char* phiBKA_t);
88+
int EphemeralSecretAgreement_A_SIDHp751_Compressed(const unsigned char* PrivateKeyA, const unsigned char* PublicKeyB, unsigned char* SharedSecretA);
9089

9190
// Bob's ephemeral shared secret computation
9291
// It produces a shared secret key SharedSecretB using his secret key PrivateKeyB and Alice's public key PublicKeyA

0 commit comments

Comments
 (0)