From e0076d0f27f1a3998498141292076d8945409745 Mon Sep 17 00:00:00 2001 From: Cayman Date: Mon, 30 Nov 2020 13:40:07 -0600 Subject: [PATCH 1/2] Add secretKeyToPublicKey function --- src/functional.ts | 9 +++++++++ src/interface.ts | 1 + 2 files changed, 10 insertions(+) diff --git a/src/functional.ts b/src/functional.ts index 7ff58e5..61e04c8 100644 --- a/src/functional.ts +++ b/src/functional.ts @@ -106,6 +106,14 @@ export function functionalInterfaceFactory({ } } + /** + * Computes a public key from a secret key + */ + function secretKeyToPublicKey(secretKey: Uint8Array): Uint8Array { + validateBytes(secretKey, "secretKey"); + return SecretKey.fromBytes(secretKey).toPublicKey().toBytes(); + } + return { sign, aggregateSignatures, @@ -113,5 +121,6 @@ export function functionalInterfaceFactory({ verify, verifyAggregate, verifyMultiple, + secretKeyToPublicKey, }; } diff --git a/src/interface.ts b/src/interface.ts index bc00966..cb57bce 100644 --- a/src/interface.ts +++ b/src/interface.ts @@ -21,6 +21,7 @@ export interface IBls { verify(publicKey: Uint8Array, message: Uint8Array, signature: Uint8Array): boolean; verifyAggregate(publicKeys: Uint8Array[], message: Uint8Array, signature: Uint8Array): boolean; verifyMultiple(publicKeys: Uint8Array[], messages: Uint8Array[], signature: Uint8Array): boolean; + secretKeyToPublicKey(secretKey: Uint8Array): Uint8Array; init(): Promise; destroy(): void; From 021fc7111e9cd6509521a7afae64da85243895e1 Mon Sep 17 00:00:00 2001 From: Cayman Date: Mon, 30 Nov 2020 13:45:23 -0600 Subject: [PATCH 2/2] Add secretKeyToPublicKey declaration --- src/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/index.ts b/src/index.ts index 9243d00..4802e66 100644 --- a/src/index.ts +++ b/src/index.ts @@ -44,6 +44,7 @@ export declare let aggregatePublicKeys: IBls["aggregatePublicKeys"]; export declare let verify: IBls["verify"]; export declare let verifyAggregate: IBls["verifyAggregate"]; export declare let verifyMultiple: IBls["verifyMultiple"]; +export declare let secretKeyToPublicKey: IBls["secretKeyToPublicKey"]; export declare class SecretKey implements ISecretKey { static fromBytes(bytes: Uint8Array): SecretKey;