21 lines
823 B
TypeScript
21 lines
823 B
TypeScript
// Copyright (C) 2026 Whiterun LLC,
|
|
// This software is licensed under the GNU Lesser General Public License (LGPL), version 3.0 or later.
|
|
// A copy of the license can be found in the LICENSE file or at https://www.gnu.org/licenses/lgpl-3.0.html
|
|
|
|
import { binToHex, secp256k1 } from "@bitauth/libauth";
|
|
import { unwrap } from "./primitives.js";
|
|
|
|
export function deriveNostrPublicKey(privateKey: Uint8Array): string {
|
|
const publicKeyCompressed = unwrap(
|
|
secp256k1.derivePublicKeyCompressed(privateKey),
|
|
);
|
|
const publicKeyNostr = publicKeyCompressed.slice(1);
|
|
return binToHex(publicKeyNostr);
|
|
}
|
|
|
|
export function deriveNostrPublicKeyBytes(privateKey: Uint8Array): Uint8Array {
|
|
const publicKeyCompressed = unwrap(
|
|
secp256k1.derivePublicKeyCompressed(privateKey),
|
|
);
|
|
return publicKeyCompressed.slice(1);
|
|
}
|