edhoc
Version:
A Node.js implementation of EDHOC (Ephemeral Diffie-Hellman Over COSE) protocol for lightweight authenticated key exchange in IoT and other constrained environments.
30 lines • 1.69 kB
TypeScript
import { EDHOC, EdhocCryptoManager, EdhocSuite, PublicPrivateTuple } from './edhoc';
import { RecoveredSignatureType } from '@noble/curves/abstract/weierstrass';
type KeyUtils = {
utils: {
randomPrivateKey: () => Uint8Array;
};
getPublicKey: (privateKey: Uint8Array, compressed?: boolean) => Uint8Array;
getSharedSecret?: (privateKey: Uint8Array, publicKey: Uint8Array) => Uint8Array;
sign?: (msg: Uint8Array, privateKey: Uint8Array) => Uint8Array | RecoveredSignatureType;
verify?: (signature: Uint8Array, msgHash: Uint8Array, publicKey: Uint8Array) => boolean;
};
export declare class DefaultEdhocCryptoManager implements EdhocCryptoManager {
generateKeyPair(edhoc: EDHOC): PublicPrivateTuple;
keyAgreement(edhoc: EDHOC, privateKey: Buffer, peerPublicKey: Buffer): Buffer;
sign(edhoc: EDHOC, privateKey: Buffer, input: Buffer): Buffer;
verify(edhoc: EDHOC, publicKey: Buffer, input: Buffer, signature: Buffer): Promise<boolean>;
hkdfExtract(_edhoc: EDHOC, ikm: Buffer, salt: Buffer): Buffer;
hkdfExpand(_edhoc: EDHOC, prk: Buffer, info: Buffer, length: number): Buffer;
encrypt(edhoc: EDHOC, key: Buffer, nonce: Buffer, aad: Buffer, plaintext: Buffer): Promise<Buffer>;
decrypt(edhoc: EDHOC, key: Buffer, nonce: Buffer, aad: Buffer, ciphertext: Buffer): Promise<Buffer>;
hash(_edhoc: EDHOC, input: Buffer): Promise<Buffer>;
private formatToBeSigned;
private formatPublicKey;
protected getCurveForSignature(suite: EdhocSuite): KeyUtils;
protected getCurveForKeyAgreement(suite: EdhocSuite): KeyUtils;
private getTagLength;
private getAlgorithm;
}
export {};
//# sourceMappingURL=crypto.d.ts.map