@aptos-labs/ts-sdk 7.1.3 → 7.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/keyless.d.ts +25 -0
- package/dist/api/keyless.d.ts.map +1 -1
- package/dist/api/keyless.js +23 -1
- package/dist/api/keyless.js.map +1 -1
- package/dist/internal/keyless.d.ts +26 -0
- package/dist/internal/keyless.d.ts.map +1 -1
- package/dist/internal/keyless.js +38 -0
- package/dist/internal/keyless.js.map +1 -1
- package/dist/types/keyless.d.ts +9 -0
- package/dist/types/keyless.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
- package/src/api/keyless.ts +29 -0
- package/src/internal/keyless.ts +53 -1
- package/src/types/keyless.ts +8 -0
- package/src/version.ts +1 -1
package/dist/api/keyless.d.ts
CHANGED
|
@@ -80,6 +80,31 @@ export declare class Keyless {
|
|
|
80
80
|
ephemeralKeyPair: EphemeralKeyPair;
|
|
81
81
|
derivationPath?: string;
|
|
82
82
|
}): Promise<Uint8Array>;
|
|
83
|
+
/**
|
|
84
|
+
* Fetches the `pepper_base` from the Aptos pepper service API.
|
|
85
|
+
*
|
|
86
|
+
* The `pepper_base` is the VUF signature from which the final pepper is derived — a 48-byte compressed
|
|
87
|
+
* BLS12-381 G1 point. It is deterministic for a given OIDC identity and independent of the ephemeral key
|
|
88
|
+
* and derivation path, making it a stable seed for deriving a confidential-asset decryption key (DK) via
|
|
89
|
+
* `@aptos-labs/confidential-asset`'s `TwistedEd25519PrivateKey.fromPepperBase`. Deriving the DK from
|
|
90
|
+
* `pepper_base` (rather than the final pepper, which is a one-way hash of it) ensures a leaked pepper does
|
|
91
|
+
* not compromise confidentiality.
|
|
92
|
+
*
|
|
93
|
+
* @param args - The arguments for fetching the pepper base.
|
|
94
|
+
* @param args.jwt - JWT token.
|
|
95
|
+
* @param args.ephemeralKeyPair - The EphemeralKeyPair used to generate the nonce in the JWT token.
|
|
96
|
+
* @param args.uidKey - An optional key in the JWT token to use to set the uidVal in the IdCommitment.
|
|
97
|
+
* @param args.derivationPath - A derivation path used for creating multiple accounts per user via the
|
|
98
|
+
* BIP-44 standard. Note: `pepper_base` itself does not depend on the derivation path.
|
|
99
|
+
* @returns The `pepper_base` as a Uint8Array of length 48.
|
|
100
|
+
* @group Keyless
|
|
101
|
+
*/
|
|
102
|
+
getPepperBase(args: {
|
|
103
|
+
jwt: string;
|
|
104
|
+
ephemeralKeyPair: EphemeralKeyPair;
|
|
105
|
+
uidKey?: string;
|
|
106
|
+
derivationPath?: string;
|
|
107
|
+
}): Promise<Uint8Array>;
|
|
83
108
|
/**
|
|
84
109
|
* Fetches a proof from the Aptos prover service API.
|
|
85
110
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyless.d.ts","sourceRoot":"","sources":["../../src/api/keyless.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"keyless.d.ts","sourceRoot":"","sources":["../../src/api/keyless.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAQ7D,OAAO,EAAE,+BAA+B,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC9F,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;;;;;GAMG;AACH,qBAAa,OAAO;IAwBN,QAAQ,CAAC,MAAM,EAAE,WAAW;IAvBxC;;;;;;;;;;;;;;;;;;;;;;OAsBG;gBACkB,MAAM,EAAE,WAAW;IAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACG,SAAS,CAAC,IAAI,EAAE;QACpB,GAAG,EAAE,MAAM,CAAC;QACZ,gBAAgB,EAAE,gBAAgB,CAAC;QACnC,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,UAAU,CAAC;IAIvB;;;;;;;;;;;;;;;;;;OAkBG;IACG,aAAa,CAAC,IAAI,EAAE;QACxB,GAAG,EAAE,MAAM,CAAC;QACZ,gBAAgB,EAAE,gBAAgB,CAAC;QACnC,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,UAAU,CAAC;IAIvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACG,QAAQ,CAAC,IAAI,EAAE;QACnB,GAAG,EAAE,MAAM,CAAC;QACZ,gBAAgB,EAAE,gBAAgB,CAAC;QACnC,MAAM,CAAC,EAAE,QAAQ,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIvB,oBAAoB,CAAC,IAAI,EAAE;QAC/B,GAAG,EAAE,MAAM,CAAC;QACZ,gBAAgB,EAAE,gBAAgB,CAAC;QACnC,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,QAAQ,CAAC;QAClB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;KACzC,GAAG,OAAO,CAAC,cAAc,CAAC;IAErB,oBAAoB,CAAC,IAAI,EAAE;QAC/B,GAAG,EAAE,MAAM,CAAC;QACZ,gBAAgB,EAAE,gBAAgB,CAAC;QACnC,UAAU,EAAE,mBAAmB,CAAC;QAChC,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,QAAQ,CAAC;QAClB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;KACzC,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAsDpC;;;;;;;;;;;;OAYG;IACG,uCAAuC,CAAC,IAAI,EAAE;QAClD,MAAM,EAAE,OAAO,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,+BAA+B,CAAC;KAC3C,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAG/B"}
|
package/dist/api/keyless.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright © Aptos Foundation
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
import { deriveKeylessAccount, getPepper, getProof, updateFederatedKeylessJwkSetTransaction, } from "../internal/keyless.js";
|
|
3
|
+
import { deriveKeylessAccount, getPepper, getPepperBase, getProof, updateFederatedKeylessJwkSetTransaction, } from "../internal/keyless.js";
|
|
4
4
|
/**
|
|
5
5
|
* A class to query all `Keyless` related queries on Aptos.
|
|
6
6
|
*
|
|
@@ -73,6 +73,28 @@ export class Keyless {
|
|
|
73
73
|
async getPepper(args) {
|
|
74
74
|
return getPepper({ aptosConfig: this.config, ...args });
|
|
75
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* Fetches the `pepper_base` from the Aptos pepper service API.
|
|
78
|
+
*
|
|
79
|
+
* The `pepper_base` is the VUF signature from which the final pepper is derived — a 48-byte compressed
|
|
80
|
+
* BLS12-381 G1 point. It is deterministic for a given OIDC identity and independent of the ephemeral key
|
|
81
|
+
* and derivation path, making it a stable seed for deriving a confidential-asset decryption key (DK) via
|
|
82
|
+
* `@aptos-labs/confidential-asset`'s `TwistedEd25519PrivateKey.fromPepperBase`. Deriving the DK from
|
|
83
|
+
* `pepper_base` (rather than the final pepper, which is a one-way hash of it) ensures a leaked pepper does
|
|
84
|
+
* not compromise confidentiality.
|
|
85
|
+
*
|
|
86
|
+
* @param args - The arguments for fetching the pepper base.
|
|
87
|
+
* @param args.jwt - JWT token.
|
|
88
|
+
* @param args.ephemeralKeyPair - The EphemeralKeyPair used to generate the nonce in the JWT token.
|
|
89
|
+
* @param args.uidKey - An optional key in the JWT token to use to set the uidVal in the IdCommitment.
|
|
90
|
+
* @param args.derivationPath - A derivation path used for creating multiple accounts per user via the
|
|
91
|
+
* BIP-44 standard. Note: `pepper_base` itself does not depend on the derivation path.
|
|
92
|
+
* @returns The `pepper_base` as a Uint8Array of length 48.
|
|
93
|
+
* @group Keyless
|
|
94
|
+
*/
|
|
95
|
+
async getPepperBase(args) {
|
|
96
|
+
return getPepperBase({ aptosConfig: this.config, ...args });
|
|
97
|
+
}
|
|
76
98
|
/**
|
|
77
99
|
* Fetches a proof from the Aptos prover service API.
|
|
78
100
|
*
|
package/dist/api/keyless.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyless.js","sourceRoot":"","sources":["../../src/api/keyless.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,sCAAsC;AAStC,OAAO,EACL,oBAAoB,EACpB,SAAS,EACT,QAAQ,EACR,uCAAuC,GACxC,MAAM,wBAAwB,CAAC;AAKhC;;;;;;GAMG;AACH,MAAM,OAAO,OAAO;IAwBG;IAvBrB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,YAAqB,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,KAAK,CAAC,SAAS,CAAC,IAIf;QACC,OAAO,SAAS,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,KAAK,CAAC,QAAQ,CAAC,IAKd;QACC,OAAO,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IAmBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACH,KAAK,CAAC,oBAAoB,CAAC,IAO1B;QACC,OAAO,oBAAoB,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,uCAAuC,CAAC,IAK7C;QACC,OAAO,uCAAuC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IACxF,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"keyless.js","sourceRoot":"","sources":["../../src/api/keyless.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,sCAAsC;AAStC,OAAO,EACL,oBAAoB,EACpB,SAAS,EACT,aAAa,EACb,QAAQ,EACR,uCAAuC,GACxC,MAAM,wBAAwB,CAAC;AAKhC;;;;;;GAMG;AACH,MAAM,OAAO,OAAO;IAwBG;IAvBrB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,YAAqB,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,KAAK,CAAC,SAAS,CAAC,IAIf;QACC,OAAO,SAAS,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,aAAa,CAAC,IAKnB;QACC,OAAO,aAAa,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,KAAK,CAAC,QAAQ,CAAC,IAKd;QACC,OAAO,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IAmBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACH,KAAK,CAAC,oBAAoB,CAAC,IAO1B;QACC,OAAO,oBAAoB,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,uCAAuC,CAAC,IAK7C;QACC,OAAO,uCAAuC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IACxF,CAAC;CACF"}
|
|
@@ -27,6 +27,32 @@ export declare function getPepper(args: {
|
|
|
27
27
|
uidKey?: string;
|
|
28
28
|
derivationPath?: string;
|
|
29
29
|
}): Promise<Uint8Array>;
|
|
30
|
+
/**
|
|
31
|
+
* Retrieves the `pepper_base` for an account — the VUF signature from which the final pepper is derived.
|
|
32
|
+
*
|
|
33
|
+
* Unlike {@link getPepper} (which hits the pepper service `fetch` endpoint and returns the 31-byte derived
|
|
34
|
+
* pepper), this hits the `signature` endpoint and returns the raw 48-byte `pepper_base` (a compressed
|
|
35
|
+
* BLS12-381 G1 point). `pepper_base` is deterministic for a given OIDC identity, independent of the ephemeral
|
|
36
|
+
* key and of the derivation path, which makes it a stable seed for deriving a confidential-asset decryption
|
|
37
|
+
* key (see `@aptos-labs/confidential-asset`'s `TwistedEd25519PrivateKey.fromPepperBase`). Deriving secrets
|
|
38
|
+
* from `pepper_base` rather than the final pepper also ensures a leaked pepper does not compromise them.
|
|
39
|
+
*
|
|
40
|
+
* @param args - The arguments required to fetch the pepper base.
|
|
41
|
+
* @param args.aptosConfig - The configuration object for Aptos.
|
|
42
|
+
* @param args.jwt - The JSON Web Token used for authentication.
|
|
43
|
+
* @param args.ephemeralKeyPair - The ephemeral key pair used for the operation.
|
|
44
|
+
* @param args.uidKey - An optional unique identifier key (defaults to "sub").
|
|
45
|
+
* @param args.derivationPath - An optional derivation path for the key.
|
|
46
|
+
* @returns A Uint8Array containing the 48-byte `pepper_base`.
|
|
47
|
+
* @group Implementation
|
|
48
|
+
*/
|
|
49
|
+
export declare function getPepperBase(args: {
|
|
50
|
+
aptosConfig: AptosConfig;
|
|
51
|
+
jwt: string;
|
|
52
|
+
ephemeralKeyPair: EphemeralKeyPair;
|
|
53
|
+
uidKey?: string;
|
|
54
|
+
derivationPath?: string;
|
|
55
|
+
}): Promise<Uint8Array>;
|
|
30
56
|
/**
|
|
31
57
|
* Generates a zero-knowledge proof based on the provided parameters.
|
|
32
58
|
* This function is essential for creating a signed proof that can be used in various cryptographic operations.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyless.d.ts","sourceRoot":"","sources":["../../src/internal/keyless.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGhE,OAAO,EAGL,OAAO,EACP,gBAAgB,EAGjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAc,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"keyless.d.ts","sourceRoot":"","sources":["../../src/internal/keyless.ts"],"names":[],"mappings":"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"}
|
package/dist/internal/keyless.js
CHANGED
|
@@ -52,6 +52,44 @@ export async function getPepper(args) {
|
|
|
52
52
|
});
|
|
53
53
|
return Hex.fromHexInput(data.pepper).toUint8Array();
|
|
54
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Retrieves the `pepper_base` for an account — the VUF signature from which the final pepper is derived.
|
|
57
|
+
*
|
|
58
|
+
* Unlike {@link getPepper} (which hits the pepper service `fetch` endpoint and returns the 31-byte derived
|
|
59
|
+
* pepper), this hits the `signature` endpoint and returns the raw 48-byte `pepper_base` (a compressed
|
|
60
|
+
* BLS12-381 G1 point). `pepper_base` is deterministic for a given OIDC identity, independent of the ephemeral
|
|
61
|
+
* key and of the derivation path, which makes it a stable seed for deriving a confidential-asset decryption
|
|
62
|
+
* key (see `@aptos-labs/confidential-asset`'s `TwistedEd25519PrivateKey.fromPepperBase`). Deriving secrets
|
|
63
|
+
* from `pepper_base` rather than the final pepper also ensures a leaked pepper does not compromise them.
|
|
64
|
+
*
|
|
65
|
+
* @param args - The arguments required to fetch the pepper base.
|
|
66
|
+
* @param args.aptosConfig - The configuration object for Aptos.
|
|
67
|
+
* @param args.jwt - The JSON Web Token used for authentication.
|
|
68
|
+
* @param args.ephemeralKeyPair - The ephemeral key pair used for the operation.
|
|
69
|
+
* @param args.uidKey - An optional unique identifier key (defaults to "sub").
|
|
70
|
+
* @param args.derivationPath - An optional derivation path for the key.
|
|
71
|
+
* @returns A Uint8Array containing the 48-byte `pepper_base`.
|
|
72
|
+
* @group Implementation
|
|
73
|
+
*/
|
|
74
|
+
export async function getPepperBase(args) {
|
|
75
|
+
const { aptosConfig, jwt, ephemeralKeyPair, uidKey = "sub", derivationPath } = args;
|
|
76
|
+
const body = {
|
|
77
|
+
jwt_b64: jwt,
|
|
78
|
+
epk: ephemeralKeyPair.getPublicKey().bcsToHex().toStringWithoutPrefix(),
|
|
79
|
+
exp_date_secs: ephemeralKeyPair.expiryDateSecs,
|
|
80
|
+
epk_blinder: Hex.fromHexInput(ephemeralKeyPair.blinder).toStringWithoutPrefix(),
|
|
81
|
+
uid_key: uidKey,
|
|
82
|
+
derivation_path: derivationPath,
|
|
83
|
+
};
|
|
84
|
+
const { data } = await postAptosPepperService({
|
|
85
|
+
aptosConfig,
|
|
86
|
+
path: "signature",
|
|
87
|
+
body,
|
|
88
|
+
originMethod: "getPepperBase",
|
|
89
|
+
overrides: { WITH_CREDENTIALS: false },
|
|
90
|
+
});
|
|
91
|
+
return Hex.fromHexInput(data.signature).toUint8Array();
|
|
92
|
+
}
|
|
55
93
|
/**
|
|
56
94
|
* Generates a zero-knowledge proof based on the provided parameters.
|
|
57
95
|
* This function is essential for creating a signed proof that can be used in various cryptographic operations.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyless.js","sourceRoot":"","sources":["../../src/internal/keyless.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,sCAAsC;AAEtC;;;;;;GAMG;AACH,OAAO,EAAE,SAAS,EAAc,MAAM,YAAY,CAAC;AAEnD,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAErF,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EACL,UAAU,EACV,gBAAgB,EAEhB,gBAAgB,EAChB,OAAO,EACP,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAY,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGzD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"keyless.js","sourceRoot":"","sources":["../../src/internal/keyless.ts"],"names":[],"mappings":"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"}
|
package/dist/types/keyless.d.ts
CHANGED
|
@@ -48,6 +48,15 @@ export type PepperFetchResponse = {
|
|
|
48
48
|
pepper: string;
|
|
49
49
|
address: string;
|
|
50
50
|
};
|
|
51
|
+
/**
|
|
52
|
+
* The response from the pepper service `signature` endpoint, containing the VUF signature — i.e. the
|
|
53
|
+
* 48-byte `pepper_base` (compressed BLS12-381 G1 point) from which the final pepper is derived.
|
|
54
|
+
* @group Implementation
|
|
55
|
+
* @category Types
|
|
56
|
+
*/
|
|
57
|
+
export type SignatureFetchResponse = {
|
|
58
|
+
signature: string;
|
|
59
|
+
};
|
|
51
60
|
/**
|
|
52
61
|
* The response for keyless configuration containing the maximum committed EPK bytes.
|
|
53
62
|
* @group Implementation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyless.d.ts","sourceRoot":"","sources":["../../src/types/keyless.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,yBAAyB,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtE;;;;GAIG;AACH,MAAM,MAAM,4BAA4B,GAAG;IACzC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wBAAwB,EAAE,MAAM,CAAC;IACjC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,sBAAsB,EAAE;QAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC;CAC3C,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,8BAA8B,GAAG;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC,UAAU,CAAC,CAAA;KAAE,CAAC;CACjC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,CAAC,aAAa,CAAC,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C,CAAC"}
|
|
1
|
+
{"version":3,"file":"keyless.d.ts","sourceRoot":"","sources":["../../src/types/keyless.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,yBAAyB,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtE;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3D;;;;GAIG;AACH,MAAM,MAAM,4BAA4B,GAAG;IACzC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wBAAwB,EAAE,MAAM,CAAC;IACjC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,sBAAsB,EAAE;QAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC;CAC3C,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,8BAA8B,GAAG;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC,UAAU,CAAC,CAAA;KAAE,CAAC;CACjC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,CAAC,aAAa,CAAC,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C,CAAC"}
|
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED
package/package.json
CHANGED
|
@@ -126,10 +126,10 @@
|
|
|
126
126
|
"typedoc": "^0.28.19",
|
|
127
127
|
"typedoc-plugin-missing-exports": "^4.1.3",
|
|
128
128
|
"typescript": "^6.0.3",
|
|
129
|
-
"vite": "^7.3.
|
|
129
|
+
"vite": "^7.3.5",
|
|
130
130
|
"vitest": "^4.1.4"
|
|
131
131
|
},
|
|
132
|
-
"version": "7.
|
|
132
|
+
"version": "7.2.0",
|
|
133
133
|
"scripts": {
|
|
134
134
|
"build:clean": "rm -rf dist",
|
|
135
135
|
"build": "pnpm build:clean && tsc -p tsconfig.build.json",
|
package/src/api/keyless.ts
CHANGED
|
@@ -11,6 +11,7 @@ import { ZeroKnowledgeSig } from "../core/crypto/keyless.js";
|
|
|
11
11
|
import {
|
|
12
12
|
deriveKeylessAccount,
|
|
13
13
|
getPepper,
|
|
14
|
+
getPepperBase,
|
|
14
15
|
getProof,
|
|
15
16
|
updateFederatedKeylessJwkSetTransaction,
|
|
16
17
|
} from "../internal/keyless.js";
|
|
@@ -93,6 +94,34 @@ export class Keyless {
|
|
|
93
94
|
return getPepper({ aptosConfig: this.config, ...args });
|
|
94
95
|
}
|
|
95
96
|
|
|
97
|
+
/**
|
|
98
|
+
* Fetches the `pepper_base` from the Aptos pepper service API.
|
|
99
|
+
*
|
|
100
|
+
* The `pepper_base` is the VUF signature from which the final pepper is derived — a 48-byte compressed
|
|
101
|
+
* BLS12-381 G1 point. It is deterministic for a given OIDC identity and independent of the ephemeral key
|
|
102
|
+
* and derivation path, making it a stable seed for deriving a confidential-asset decryption key (DK) via
|
|
103
|
+
* `@aptos-labs/confidential-asset`'s `TwistedEd25519PrivateKey.fromPepperBase`. Deriving the DK from
|
|
104
|
+
* `pepper_base` (rather than the final pepper, which is a one-way hash of it) ensures a leaked pepper does
|
|
105
|
+
* not compromise confidentiality.
|
|
106
|
+
*
|
|
107
|
+
* @param args - The arguments for fetching the pepper base.
|
|
108
|
+
* @param args.jwt - JWT token.
|
|
109
|
+
* @param args.ephemeralKeyPair - The EphemeralKeyPair used to generate the nonce in the JWT token.
|
|
110
|
+
* @param args.uidKey - An optional key in the JWT token to use to set the uidVal in the IdCommitment.
|
|
111
|
+
* @param args.derivationPath - A derivation path used for creating multiple accounts per user via the
|
|
112
|
+
* BIP-44 standard. Note: `pepper_base` itself does not depend on the derivation path.
|
|
113
|
+
* @returns The `pepper_base` as a Uint8Array of length 48.
|
|
114
|
+
* @group Keyless
|
|
115
|
+
*/
|
|
116
|
+
async getPepperBase(args: {
|
|
117
|
+
jwt: string;
|
|
118
|
+
ephemeralKeyPair: EphemeralKeyPair;
|
|
119
|
+
uidKey?: string;
|
|
120
|
+
derivationPath?: string;
|
|
121
|
+
}): Promise<Uint8Array> {
|
|
122
|
+
return getPepperBase({ aptosConfig: this.config, ...args });
|
|
123
|
+
}
|
|
124
|
+
|
|
96
125
|
/**
|
|
97
126
|
* Fetches a proof from the Aptos prover service API.
|
|
98
127
|
*
|
package/src/internal/keyless.ts
CHANGED
|
@@ -27,7 +27,13 @@ import { Account } from "../account/index.js";
|
|
|
27
27
|
import { EphemeralKeyPair } from "../account/EphemeralKeyPair.js";
|
|
28
28
|
import { KeylessAccount } from "../account/KeylessAccount.js";
|
|
29
29
|
import { ProofFetchCallback } from "../account/AbstractKeylessAccount.js";
|
|
30
|
-
import {
|
|
30
|
+
import {
|
|
31
|
+
PepperFetchRequest,
|
|
32
|
+
PepperFetchResponse,
|
|
33
|
+
ProverRequest,
|
|
34
|
+
ProverResponse,
|
|
35
|
+
SignatureFetchResponse,
|
|
36
|
+
} from "../types/keyless.js";
|
|
31
37
|
import { lookupOriginalAccountAddress } from "./account.js";
|
|
32
38
|
import { FederatedKeylessPublicKey } from "../core/crypto/federatedKeyless.js";
|
|
33
39
|
import { FederatedKeylessAccount } from "../account/FederatedKeylessAccount.js";
|
|
@@ -76,6 +82,52 @@ export async function getPepper(args: {
|
|
|
76
82
|
return Hex.fromHexInput(data.pepper).toUint8Array();
|
|
77
83
|
}
|
|
78
84
|
|
|
85
|
+
/**
|
|
86
|
+
* Retrieves the `pepper_base` for an account — the VUF signature from which the final pepper is derived.
|
|
87
|
+
*
|
|
88
|
+
* Unlike {@link getPepper} (which hits the pepper service `fetch` endpoint and returns the 31-byte derived
|
|
89
|
+
* pepper), this hits the `signature` endpoint and returns the raw 48-byte `pepper_base` (a compressed
|
|
90
|
+
* BLS12-381 G1 point). `pepper_base` is deterministic for a given OIDC identity, independent of the ephemeral
|
|
91
|
+
* key and of the derivation path, which makes it a stable seed for deriving a confidential-asset decryption
|
|
92
|
+
* key (see `@aptos-labs/confidential-asset`'s `TwistedEd25519PrivateKey.fromPepperBase`). Deriving secrets
|
|
93
|
+
* from `pepper_base` rather than the final pepper also ensures a leaked pepper does not compromise them.
|
|
94
|
+
*
|
|
95
|
+
* @param args - The arguments required to fetch the pepper base.
|
|
96
|
+
* @param args.aptosConfig - The configuration object for Aptos.
|
|
97
|
+
* @param args.jwt - The JSON Web Token used for authentication.
|
|
98
|
+
* @param args.ephemeralKeyPair - The ephemeral key pair used for the operation.
|
|
99
|
+
* @param args.uidKey - An optional unique identifier key (defaults to "sub").
|
|
100
|
+
* @param args.derivationPath - An optional derivation path for the key.
|
|
101
|
+
* @returns A Uint8Array containing the 48-byte `pepper_base`.
|
|
102
|
+
* @group Implementation
|
|
103
|
+
*/
|
|
104
|
+
export async function getPepperBase(args: {
|
|
105
|
+
aptosConfig: AptosConfig;
|
|
106
|
+
jwt: string;
|
|
107
|
+
ephemeralKeyPair: EphemeralKeyPair;
|
|
108
|
+
uidKey?: string;
|
|
109
|
+
derivationPath?: string;
|
|
110
|
+
}): Promise<Uint8Array> {
|
|
111
|
+
const { aptosConfig, jwt, ephemeralKeyPair, uidKey = "sub", derivationPath } = args;
|
|
112
|
+
|
|
113
|
+
const body = {
|
|
114
|
+
jwt_b64: jwt,
|
|
115
|
+
epk: ephemeralKeyPair.getPublicKey().bcsToHex().toStringWithoutPrefix(),
|
|
116
|
+
exp_date_secs: ephemeralKeyPair.expiryDateSecs,
|
|
117
|
+
epk_blinder: Hex.fromHexInput(ephemeralKeyPair.blinder).toStringWithoutPrefix(),
|
|
118
|
+
uid_key: uidKey,
|
|
119
|
+
derivation_path: derivationPath,
|
|
120
|
+
};
|
|
121
|
+
const { data } = await postAptosPepperService<PepperFetchRequest, SignatureFetchResponse>({
|
|
122
|
+
aptosConfig,
|
|
123
|
+
path: "signature",
|
|
124
|
+
body,
|
|
125
|
+
originMethod: "getPepperBase",
|
|
126
|
+
overrides: { WITH_CREDENTIALS: false },
|
|
127
|
+
});
|
|
128
|
+
return Hex.fromHexInput(data.signature).toUint8Array();
|
|
129
|
+
}
|
|
130
|
+
|
|
79
131
|
/**
|
|
80
132
|
* Generates a zero-knowledge proof based on the provided parameters.
|
|
81
133
|
* This function is essential for creating a signed proof that can be used in various cryptographic operations.
|
package/src/types/keyless.ts
CHANGED
|
@@ -45,6 +45,14 @@ export type PepperFetchRequest = {
|
|
|
45
45
|
*/
|
|
46
46
|
export type PepperFetchResponse = { pepper: string; address: string };
|
|
47
47
|
|
|
48
|
+
/**
|
|
49
|
+
* The response from the pepper service `signature` endpoint, containing the VUF signature — i.e. the
|
|
50
|
+
* 48-byte `pepper_base` (compressed BLS12-381 G1 point) from which the final pepper is derived.
|
|
51
|
+
* @group Implementation
|
|
52
|
+
* @category Types
|
|
53
|
+
*/
|
|
54
|
+
export type SignatureFetchResponse = { signature: string };
|
|
55
|
+
|
|
48
56
|
/**
|
|
49
57
|
* The response for keyless configuration containing the maximum committed EPK bytes.
|
|
50
58
|
* @group Implementation
|
package/src/version.ts
CHANGED