nsISyncJPAKE

Please add a summary to this article.
1.0
66
Introduced
Gecko 2.0
Inherits from: nsISupports Last changed in Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)

Method overview

void final(in ACString aB, in ACString aGVB, in ACString aRB, in ACString aHkdfInfo, out ACString aAES256Key, out ACString aHMAC256Key);
void round1(in ACString aSignerID, out ACString aGX1, out ACString aGV1, out ACString aR1, out ACString aGX2, out ACString aGV2, out ACString aR2);
void round2(in ACString aPeerID, in ACString aPIN, in ACString aGX3, in ACString aGV3, in ACString aR3, in ACString aGX4, in ACString aGV4, in ACString aR4, out ACString aA, out ACString aGVA, out ACString aRA);

Methods

final()

Perform the final step of the JPAKE exchange. This will compute the key and expand the key to two keys, an AES256 encryption key and a 256 bit HMAC key. It returns a key confirmation value (SHA256d of the key) and the encryption and HMAC keys.

void final(
  in ACString aB,
  in ACString aGVB,
  in ACString aRB,
  in ACString aHkdfInfo,
  out ACString aAES256Key,
  out ACString aHMAC256Key
);
Parameters
aB
Schnorr signature value B, in hex representation.
aGVB
Schnorr signature value g^vb (vb is a random value), in hex representation.
aRB
Schnorr signature value rb = vb - xb * h, in hex representation.
aHkdfInfo
Missing Description
aAES256Key
The AES 256 encryption key, in base64 representation.
aHMAC256Key
The 256 bit HMAC key, in base64 representation.

round1()

Perform first round of the JPAKE exchange.

void round1(
  in ACString aSignerID,
  out ACString aGX1,
  out ACString aGV1,
  out ACString aR1,
  out ACString aGX2,
  out ACString aGV2,
  out ACString aR2
);
Parameters
aSignerID
String identifying the signer.
aGX1
Schnorr signature value g^x1, in hex representation.
aGV1
Schnorr signature value g^v1 (v1 is a random value), in hex representation.
aR1
Schnorr signature value r1 = v1 - x1 * h, in hex representation.
aGX2
Schnorr signature value g^x2, in hex representation.
aGV2
Schnorr signature value g^v2 (v2 is a random value), in hex representation.
aR2
Schnorr signature value r2 = v2 - x2 * h, in hex representation.

round2()

Perform second round of the JPAKE exchange.

void round2(
  in ACString aPeerID,
  in ACString aPIN,
  in ACString aGX3,
  in ACString aGV3,
  in ACString aR3,
  in ACString aGX4,
  in ACString aGV4,
  in ACString aR4,
  out ACString aA,
  out ACString aGVA,
  out ACString aRA
);
Parameters
aPeerID
String identifying the peer.
aPIN
String containing the weak secret (PIN).
aGX3
Schnorr signature value g^x3, in hex representation.
aGV3
Schnorr signature value g^v3 (v3 is a random value), in hex representation.
aR3
Schnorr signature value r3 = v3 - x3 * h, in hex representation.
aGX4
Schnorr signature value g^x4, in hex representation.
aGV4
Schnorr signature value g^v4 (v4 is a random value), in hex representation.
aR4
Schnorr signature value r4 = v4 - x4 * h, in hex representation.
aA
Schnorr signature value A, in hex representation.
aGVA
Schnorr signature value g^va (va is a random value), in hex representation.
aRA
Schnorr signature value ra = va - xa * h, in hex representation.