MCPcopy Create free account
hub / github.com/Dstack-TEE/dstack / generateKeyPair

Function generateKeyPair

vmm/ui/src/lib/x25519.js:1644–1663  ·  view source on GitHub ↗

* Generates a new key pair from the given 32-byte secret seed (which should be generated with a CSPRNG) and returns it as object. * * The returned keys can be used for signing and key agreement. * * @export * @param {Uint8Array} seed required * @returns

(seed)

Source from the content-addressed store, hash-verified

1642 * @returns
1643 */
1644 function generateKeyPair(seed) {
1645 checkArrayTypes(seed);
1646 if (seed.length !== 32)
1647 throw new Error('wrong seed length');
1648 var sk = new Uint8Array(32);
1649 var pk = new Uint8Array(32);
1650 for (var i = 0; i < 32; i++)
1651 sk[i] = seed[i];
1652 crypto_scalarmult_base(pk, sk);
1653 // Turn secret key into the correct format.
1654 sk[0] &= 248;
1655 sk[31] &= 127;
1656 sk[31] |= 64;
1657 // Remove sign bit from public key.
1658 pk[31] &= 127;
1659 return {
1660 public: pk,
1661 private: sk,
1662 };
1663 }
1664
1665module.exports = {
1666 sharedKey,

Callers

nothing calls this directly

Calls 2

checkArrayTypesFunction · 0.70
crypto_scalarmult_baseFunction · 0.70

Tested by

no test coverage detected