Expand description

Code related to X25519

Functions

Derive a shared bits between two X25519 key pairs

example
const keyPair = await X25519.generateKey();
const otherKeyPair = await X25519.generateKey();
const bits = await X25519.deriveBits(
{ public: otherKeyPair.publicKey.self },
keyPair.privateKey.self,
128
);
example
const keyPair = await X25519.generateKey();
const otherKeyPair = await X25519.generateKey();
const bits = await keyPair.privateKey.deriveBits(
{ public: otherKeyPair.publicKey.self },
128
);

Parameters

Returns Promise<ArrayBuffer>

Derive a shared key between two X25519 key pairs. Note that the derived key material is limited to 256 bits, so the derived key type must not require more than that.

example
const keyPair = await X25519.generateKey();
const otherKeyPair = await X25519.generateKey();
const aesParams: params.EnforcedAesKeyGenParams = {
name: AES.Alg.Mode.AES_GCM,
length: 256,
};
let key = await X25519.deriveKey(
{ public: otherKeyPair.publicKey.self },
keyPair.privateKey.self,
aesParams
);
example
const keyPair = await X25519.generateKey();
const otherKeyPair = await X25519.generateKey();
const aesParams: params.EnforcedAesKeyGenParams = {
name: AES.Alg.Mode.AES_GCM,
length: 256,
};
let key = await keyPair.privateKey.deriveKey(
{ public: otherKeyPair.publicKey.self },
aesParams
);

Parameters

Returns Promise<HmacCryptoKey | AesCryptoKeys>

Export an X25519 public or private key

example
const pubKeyJwk = await X25519.exportKey("jwk", keyPair.publicKey.self);
example
const privKeyJwk = await X25519.exportKey("jwk", keyPair.privateKey.self);
example
const pubKeyJwk = await keyPair.publicKey.exportKey("jwk");
example
const privKeyJwk = await keyPair.privateKey.exportKey("jwk");

Parameters

Returns Promise<ArrayBuffer | JsonWebKey>

Generate a new X25519 keypair

example
const keyPair = await X25519.generateKey();
example
const keyPair = await X25519.generateKey(false);
example
const keyPair = await X25519.generateKey(true, ['deriveKey', 'deriveBits']);

Parameters

  • Optional extractable: boolean
  • Optional keyUsages: KeyUsage[]

Returns Promise<X25519ProxiedCryptoKeyPair>

Generate a new X25519 keypair

alias

generateKey

example
const keyPair = await X25519.generateKeyPair();
example
const keyPair = await X25519.generateKeyPair(false);
example
const keyPair = await X25519.generateKeyPair(true, ['deriveKey', 'deriveBits']);

Parameters

  • Optional extractable: boolean
  • Optional keyUsages: KeyUsage[]

Returns Promise<X25519ProxiedCryptoKeyPair>

Import an X25519 public or private key

example
const pubKey = await X25519.importKey("jwk", pubKeyJwk, true, []);
example
const privKey = await X25519.importKey("jwk", privKeyJwk, true, ['deriveBits', 'deriveKey']);

Parameters

  • format: KeyFormat
  • key: BufferSource | JsonWebKey
  • Optional extractable: boolean
  • Optional keyUsages: KeyUsage[]

Returns Promise<X25519ProxiedPubCryptoKey | X25519ProxiedPrivCryptoKey>