Module curve25519/x25519
source · [−]Expand description
Code related to X25519
Functions
sourcederiveBits
deriveBits
source(algorithm: Omit<EnforcedX25519KeyDeriveParams, "name">, baseKey: X25519PrivCryptoKey, length: number): Promise<ArrayBuffer>
(algorithm: Omit<EnforcedX25519KeyDeriveParams, "name">, baseKey: X25519PrivCryptoKey, length: number): Promise<ArrayBuffer>
Derive a shared bits between two X25519 key pairs
exampleconst keyPair = await X25519.generateKey();
const otherKeyPair = await X25519.generateKey();
const bits = await X25519.deriveBits(
{ public: otherKeyPair.publicKey.self },
keyPair.privateKey.self,
128
);
exampleconst keyPair = await X25519.generateKey();
const otherKeyPair = await X25519.generateKey();
const bits = await keyPair.privateKey.deriveBits(
{ public: otherKeyPair.publicKey.self },
128
);
Parameters
algorithm: Omit<EnforcedX25519KeyDeriveParams, "name">
baseKey: X25519PrivCryptoKey
length: number
Returns Promise<ArrayBuffer>
sourcederiveKey
deriveKey
source(algorithm: Omit<EnforcedX25519KeyDeriveParams, "name">, baseKey: X25519PrivCryptoKey, derivedKeyType: EnforcedHmacKeyGenParams | EnforcedAesKeyGenParams, extractable?: boolean, keyUsages?: KeyUsage[]): Promise<HmacCryptoKey | AesCryptoKeys>
(algorithm: Omit<EnforcedX25519KeyDeriveParams, "name">, baseKey: X25519PrivCryptoKey, derivedKeyType: EnforcedHmacKeyGenParams | EnforcedAesKeyGenParams, extractable?: boolean, keyUsages?: KeyUsage[]): Promise<HmacCryptoKey | AesCryptoKeys>
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.
exampleconst 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
);
exampleconst 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
algorithm: Omit<EnforcedX25519KeyDeriveParams, "name">
baseKey: X25519PrivCryptoKey
derivedKeyType: EnforcedHmacKeyGenParams | EnforcedAesKeyGenParams
extractable: boolean = true
Optional keyUsages: KeyUsage[]
Returns Promise<HmacCryptoKey | AesCryptoKeys>
sourceexportKey
exportKey
source(format: KeyFormat, key: X25519PubCryptoKey | X25519PrivCryptoKey): Promise<ArrayBuffer | JsonWebKey>
(format: KeyFormat, key: X25519PubCryptoKey | X25519PrivCryptoKey): Promise<ArrayBuffer | JsonWebKey>
Export an X25519 public or private key
exampleconst pubKeyJwk = await X25519.exportKey("jwk", keyPair.publicKey.self);
exampleconst privKeyJwk = await X25519.exportKey("jwk", keyPair.privateKey.self);
exampleconst pubKeyJwk = await keyPair.publicKey.exportKey("jwk");
exampleconst privKeyJwk = await keyPair.privateKey.exportKey("jwk");
Parameters
format: KeyFormat
key: X25519PubCryptoKey | X25519PrivCryptoKey
Returns Promise<ArrayBuffer | JsonWebKey>
sourcegenerateKey
generateKey
source(extractable?: boolean, keyUsages?: KeyUsage[]): Promise<X25519ProxiedCryptoKeyPair>
(extractable?: boolean, keyUsages?: KeyUsage[]): Promise<X25519ProxiedCryptoKeyPair>
Generate a new X25519 keypair
exampleconst keyPair = await X25519.generateKey();
exampleconst keyPair = await X25519.generateKey(false);
exampleconst keyPair = await X25519.generateKey(true, ['deriveKey', 'deriveBits']);
Parameters
Optional extractable: boolean
Optional keyUsages: KeyUsage[]
Returns Promise<X25519ProxiedCryptoKeyPair>
sourcegenerateKeyPair
generateKeyPair
source(extractable?: boolean, keyUsages?: KeyUsage[]): Promise<X25519ProxiedCryptoKeyPair>
(extractable?: boolean, keyUsages?: KeyUsage[]): Promise<X25519ProxiedCryptoKeyPair>
Generate a new X25519 keypair
aliasgenerateKey
exampleconst keyPair = await X25519.generateKeyPair();
exampleconst keyPair = await X25519.generateKeyPair(false);
exampleconst keyPair = await X25519.generateKeyPair(true, ['deriveKey', 'deriveBits']);
Parameters
Optional extractable: boolean
Optional keyUsages: KeyUsage[]
Returns Promise<X25519ProxiedCryptoKeyPair>
sourceimportKey
importKey
source(format: KeyFormat, key: BufferSource | JsonWebKey, extractable?: boolean, keyUsages?: KeyUsage[]): Promise<X25519ProxiedPubCryptoKey | X25519ProxiedPrivCryptoKey>
(format: KeyFormat, key: BufferSource | JsonWebKey, extractable?: boolean, keyUsages?: KeyUsage[]): Promise<X25519ProxiedPubCryptoKey | X25519ProxiedPrivCryptoKey>
Import an X25519 public or private key
exampleconst pubKey = await X25519.importKey("jwk", pubKeyJwk, true, []);
exampleconst privKey = await X25519.importKey("jwk", privKeyJwk, true, ['deriveBits', 'deriveKey']);
Parameters
format: KeyFormat
key: BufferSource | JsonWebKey
Optional extractable: boolean
Optional keyUsages: KeyUsage[]