@bsv/sdk 1.2.20 → 1.2.22
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/cjs/package.json +3 -3
- package/dist/cjs/src/auth/Peer.js +536 -0
- package/dist/cjs/src/auth/Peer.js.map +1 -0
- package/dist/cjs/src/auth/SessionManager.js +66 -0
- package/dist/cjs/src/auth/SessionManager.js.map +1 -0
- package/dist/cjs/src/auth/{Certificate.js → certificates/Certificate.js} +22 -26
- package/dist/cjs/src/auth/certificates/Certificate.js.map +1 -0
- package/dist/cjs/src/auth/certificates/MasterCertificate.js +79 -0
- package/dist/cjs/src/auth/certificates/MasterCertificate.js.map +1 -0
- package/dist/cjs/src/auth/certificates/VerifiableCertificate.js +49 -0
- package/dist/cjs/src/auth/certificates/VerifiableCertificate.js.map +1 -0
- package/dist/cjs/src/auth/certificates/index.js +25 -0
- package/dist/cjs/src/auth/certificates/index.js.map +1 -0
- package/dist/cjs/src/auth/clients/AuthFetch.js +411 -0
- package/dist/cjs/src/auth/clients/AuthFetch.js.map +1 -0
- package/dist/cjs/src/auth/clients/index.js +18 -0
- package/dist/cjs/src/auth/clients/index.js.map +1 -0
- package/dist/cjs/src/auth/index.js +20 -5
- package/dist/cjs/src/auth/index.js.map +1 -1
- package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js +259 -0
- package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js.map +1 -0
- package/dist/cjs/src/auth/transports/index.js +18 -0
- package/dist/cjs/src/auth/transports/index.js.map +1 -0
- package/dist/cjs/src/auth/types.js +3 -0
- package/dist/cjs/src/auth/types.js.map +1 -0
- package/dist/cjs/src/auth/utils/certificateHelpers.js +51 -0
- package/dist/cjs/src/auth/utils/certificateHelpers.js.map +1 -0
- package/dist/cjs/src/auth/utils/createNonce.js +19 -0
- package/dist/cjs/src/auth/utils/createNonce.js.map +1 -0
- package/dist/cjs/src/auth/utils/getVerifiableCertificates.js +31 -0
- package/dist/cjs/src/auth/utils/getVerifiableCertificates.js.map +1 -0
- package/dist/cjs/src/auth/utils/index.js +22 -0
- package/dist/cjs/src/auth/utils/index.js.map +1 -0
- package/dist/cjs/src/auth/utils/validateCertificates.js +42 -0
- package/dist/cjs/src/auth/utils/validateCertificates.js.map +1 -0
- package/dist/cjs/src/auth/utils/verifyNonce.js +27 -0
- package/dist/cjs/src/auth/utils/verifyNonce.js.map +1 -0
- package/dist/cjs/src/primitives/Point.js +1 -1
- package/dist/cjs/src/primitives/Point.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js +1 -1
- package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js +148 -148
- package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/src/auth/Peer.js +533 -0
- package/dist/esm/src/auth/Peer.js.map +1 -0
- package/dist/esm/src/auth/SessionManager.js +63 -0
- package/dist/esm/src/auth/SessionManager.js.map +1 -0
- package/dist/esm/src/auth/{Certificate.js → certificates/Certificate.js} +1 -2
- package/dist/esm/src/auth/certificates/Certificate.js.map +1 -0
- package/dist/esm/src/auth/certificates/MasterCertificate.js +73 -0
- package/dist/esm/src/auth/certificates/MasterCertificate.js.map +1 -0
- package/dist/esm/src/auth/certificates/VerifiableCertificate.js +44 -0
- package/dist/esm/src/auth/certificates/VerifiableCertificate.js.map +1 -0
- package/dist/esm/src/auth/certificates/index.js +4 -0
- package/dist/esm/src/auth/certificates/index.js.map +1 -0
- package/dist/esm/src/auth/clients/AuthFetch.js +409 -0
- package/dist/esm/src/auth/clients/AuthFetch.js.map +1 -0
- package/dist/esm/src/auth/clients/index.js +2 -0
- package/dist/esm/src/auth/clients/index.js.map +1 -0
- package/dist/esm/src/auth/index.js +7 -1
- package/dist/esm/src/auth/index.js.map +1 -1
- package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js +258 -0
- package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js.map +1 -0
- package/dist/esm/src/auth/transports/index.js +2 -0
- package/dist/esm/src/auth/transports/index.js.map +1 -0
- package/dist/esm/src/auth/types.js +2 -0
- package/dist/esm/src/auth/types.js.map +1 -0
- package/dist/esm/src/auth/utils/certificateHelpers.js +47 -0
- package/dist/esm/src/auth/utils/certificateHelpers.js.map +1 -0
- package/dist/esm/src/auth/utils/createNonce.js +16 -0
- package/dist/esm/src/auth/utils/createNonce.js.map +1 -0
- package/dist/esm/src/auth/utils/getVerifiableCertificates.js +27 -0
- package/dist/esm/src/auth/utils/getVerifiableCertificates.js.map +1 -0
- package/dist/esm/src/auth/utils/index.js +6 -0
- package/dist/esm/src/auth/utils/index.js.map +1 -0
- package/dist/esm/src/auth/utils/validateCertificates.js +38 -0
- package/dist/esm/src/auth/utils/validateCertificates.js.map +1 -0
- package/dist/esm/src/auth/utils/verifyNonce.js +24 -0
- package/dist/esm/src/auth/utils/verifyNonce.js.map +1 -0
- package/dist/esm/src/primitives/Point.js +1 -1
- package/dist/esm/src/primitives/Point.js.map +1 -1
- package/dist/esm/src/wallet/substrates/WalletWireProcessor.js +1 -1
- package/dist/esm/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
- package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js +1 -1
- package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/types/src/auth/Peer.d.ts +193 -0
- package/dist/types/src/auth/Peer.d.ts.map +1 -0
- package/dist/types/src/auth/SessionManager.d.ts +42 -0
- package/dist/types/src/auth/SessionManager.d.ts.map +1 -0
- package/dist/types/src/auth/{Certificate.d.ts → certificates/Certificate.d.ts} +1 -1
- package/dist/types/src/auth/certificates/Certificate.d.ts.map +1 -0
- package/dist/types/src/auth/certificates/MasterCertificate.d.ts +38 -0
- package/dist/types/src/auth/certificates/MasterCertificate.d.ts.map +1 -0
- package/dist/types/src/auth/certificates/VerifiableCertificate.d.ts +26 -0
- package/dist/types/src/auth/certificates/VerifiableCertificate.d.ts.map +1 -0
- package/dist/types/src/auth/certificates/index.d.ts +4 -0
- package/dist/types/src/auth/certificates/index.d.ts.map +1 -0
- package/dist/types/src/auth/clients/AuthFetch.d.ts +87 -0
- package/dist/types/src/auth/clients/AuthFetch.d.ts.map +1 -0
- package/dist/types/src/auth/clients/index.d.ts +2 -0
- package/dist/types/src/auth/clients/index.d.ts.map +1 -0
- package/dist/types/src/auth/index.d.ts +7 -1
- package/dist/types/src/auth/index.d.ts.map +1 -1
- package/dist/types/src/auth/transports/SimplifiedFetchTransport.d.ts +51 -0
- package/dist/types/src/auth/transports/SimplifiedFetchTransport.d.ts.map +1 -0
- package/dist/types/src/auth/transports/index.d.ts +2 -0
- package/dist/types/src/auth/transports/index.d.ts.map +1 -0
- package/dist/types/src/auth/types.d.ts +31 -0
- package/dist/types/src/auth/types.d.ts.map +1 -0
- package/dist/types/src/auth/utils/certificateHelpers.d.ts +26 -0
- package/dist/types/src/auth/utils/certificateHelpers.d.ts.map +1 -0
- package/dist/types/src/auth/utils/createNonce.d.ts +8 -0
- package/dist/types/src/auth/utils/createNonce.d.ts.map +1 -0
- package/dist/types/src/auth/utils/getVerifiableCertificates.d.ts +13 -0
- package/dist/types/src/auth/utils/getVerifiableCertificates.d.ts.map +1 -0
- package/dist/types/src/auth/utils/index.d.ts +6 -0
- package/dist/types/src/auth/utils/index.d.ts.map +1 -0
- package/dist/types/src/auth/utils/validateCertificates.d.ts +12 -0
- package/dist/types/src/auth/utils/validateCertificates.d.ts.map +1 -0
- package/dist/types/src/auth/utils/verifyNonce.d.ts +9 -0
- package/dist/types/src/auth/utils/verifyNonce.d.ts.map +1 -0
- package/dist/types/src/primitives/Point.d.ts.map +1 -1
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/dist/umd/bundle.js +1 -1
- package/docs/README.md +1 -0
- package/docs/auth.md +1193 -0
- package/package.json +13 -3
- package/src/auth/Peer.ts +600 -0
- package/src/auth/SessionManager.ts +71 -0
- package/src/auth/__tests/Peer.test.ts +599 -0
- package/src/auth/__tests/SessionManager.test.ts +87 -0
- package/src/auth/{Certificate.ts → certificates/Certificate.ts} +15 -8
- package/src/auth/certificates/MasterCertificate.ts +106 -0
- package/src/auth/certificates/VerifiableCertificate.ts +73 -0
- package/src/auth/certificates/__tests/Certificate.test.ts +282 -0
- package/src/auth/certificates/index.ts +3 -0
- package/src/auth/clients/AuthFetch.ts +482 -0
- package/src/auth/clients/index.ts +1 -0
- package/src/auth/index.ts +7 -1
- package/src/auth/transports/SimplifiedFetchTransport.ts +288 -0
- package/src/auth/transports/index.ts +1 -0
- package/src/auth/types.ts +41 -0
- package/src/auth/utils/__tests/cryptononce.test.ts +84 -0
- package/src/auth/utils/__tests/getVerifiableCertificates.test.ts +126 -0
- package/src/auth/utils/__tests/validateCertificates.test.ts +142 -0
- package/src/auth/utils/certificateHelpers.ts +86 -0
- package/src/auth/utils/createNonce.ts +16 -0
- package/src/auth/utils/getVerifiableCertificates.ts +40 -0
- package/src/auth/utils/index.ts +5 -0
- package/src/auth/utils/validateCertificates.ts +54 -0
- package/src/auth/utils/verifyNonce.ts +27 -0
- package/src/primitives/Point.ts +59 -59
- package/src/wallet/substrates/WalletWireProcessor.ts +1 -1
- package/src/wallet/substrates/WalletWireTransceiver.ts +1 -1
- package/dist/cjs/src/auth/Certificate.js.map +0 -1
- package/dist/esm/src/auth/Certificate.js.map +0 -1
- package/dist/types/src/auth/Certificate.d.ts.map +0 -1
- package/src/auth/__tests/Certificate.test.ts +0 -282
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { PeerSession } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Manages sessions for peers, allowing sessions to be added, retrieved, updated, and removed
|
|
4
|
+
* by relevant identifiers (sessionNonce and peerIdentityKey).
|
|
5
|
+
*/
|
|
6
|
+
export declare class SessionManager {
|
|
7
|
+
private readonly identifierToSession;
|
|
8
|
+
constructor();
|
|
9
|
+
/**
|
|
10
|
+
* Adds a session to the manager, associating it with relevant identifiers for retrieval.
|
|
11
|
+
*
|
|
12
|
+
* @param {PeerSession} session - The peer session to add.
|
|
13
|
+
*/
|
|
14
|
+
addSession(session: PeerSession): void;
|
|
15
|
+
/**
|
|
16
|
+
* Updates a session in the manager, ensuring that all identifiers are correctly associated.
|
|
17
|
+
*
|
|
18
|
+
* @param {PeerSession} session - The peer session to update.
|
|
19
|
+
*/
|
|
20
|
+
updateSession(session: PeerSession): void;
|
|
21
|
+
/**
|
|
22
|
+
* Retrieves a session based on a given identifier.
|
|
23
|
+
*
|
|
24
|
+
* @param {string} identifier - The identifier for the session (sessionNonce or peerIdentityKey).
|
|
25
|
+
* @returns {PeerSession | undefined} - The matching peer session, or undefined if not found.
|
|
26
|
+
*/
|
|
27
|
+
getSession(identifier: string): PeerSession | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* Removes a session from the manager by clearing all associated identifiers.
|
|
30
|
+
*
|
|
31
|
+
* @param {PeerSession} session - The peer session to remove.
|
|
32
|
+
*/
|
|
33
|
+
removeSession(session: PeerSession): void;
|
|
34
|
+
/**
|
|
35
|
+
* Checks if a session exists based on a given identifier.
|
|
36
|
+
*
|
|
37
|
+
* @param {string} identifier - The identifier to check.
|
|
38
|
+
* @returns {boolean} - True if the session exists, false otherwise.
|
|
39
|
+
*/
|
|
40
|
+
hasSession(identifier: string): boolean;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=SessionManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionManager.d.ts","sourceRoot":"","sources":["../../../../src/auth/SessionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA0B;;IAM9D;;;;OAIG;IACH,UAAU,CAAE,OAAO,EAAE,WAAW,GAAG,IAAI;IAavC;;;;MAIE;IACF,aAAa,CAAE,OAAO,EAAE,WAAW,GAAG,IAAI;IAK1C;;;;;OAKG;IACH,UAAU,CAAE,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIxD;;;;OAIG;IACH,aAAa,CAAE,OAAO,EAAE,WAAW,GAAG,IAAI;IAK1C;;;;;OAKG;IACH,UAAU,CAAE,UAAU,EAAE,MAAM,GAAG,OAAO;CAGzC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Wallet, Base64String, PubKeyHex, HexString, OutpointString, CertificateFieldNameUnder50Bytes } from '
|
|
1
|
+
import { Wallet, Base64String, PubKeyHex, HexString, OutpointString, CertificateFieldNameUnder50Bytes } from '../../../mod.js';
|
|
2
2
|
/**
|
|
3
3
|
* Represents an Identity Certificate as per the Wallet interface specifications.
|
|
4
4
|
*
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Certificate.d.ts","sourceRoot":"","sources":["../../../../../src/auth/certificates/Certificate.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EACN,YAAY,EACZ,SAAS,EACT,SAAS,EACT,cAAc,EACd,gCAAgC,EAEjC,MAAM,iBAAiB,CAAA;AAExB;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,WAAW;IAC9B;;OAEG;IACH,IAAI,EAAE,YAAY,CAAA;IAElB;;OAEG;IACH,YAAY,EAAE,YAAY,CAAA;IAE1B;;OAEG;IACH,OAAO,EAAE,SAAS,CAAA;IAElB;;OAEG;IACH,SAAS,EAAE,SAAS,CAAA;IAEpB;;OAEG;IACH,kBAAkB,EAAE,cAAc,CAAA;IAElC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC,gCAAgC,EAAE,MAAM,CAAC,CAAA;IAExD;;MAEE;IACF,SAAS,CAAC,EAAE,SAAS,CAAA;IAErB;;;;;;;;;;OAUG;gBAED,IAAI,EAAE,YAAY,EAClB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,SAAS,EAClB,SAAS,EAAE,SAAS,EACpB,kBAAkB,EAAE,cAAc,EAClC,MAAM,EAAE,MAAM,CAAC,gCAAgC,EAAE,MAAM,CAAC,EACxD,SAAS,CAAC,EAAE,SAAS;IAWvB;;;;;OAKG;IACH,KAAK,CAAC,gBAAgB,GAAE,OAAc,GAAG,MAAM,EAAE;IAkDjD;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,WAAW;IA6D1C;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAehC;;;;;OAKG;IACG,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAS7C"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Base64String, CertificateFieldNameUnder50Bytes, HexString, OutpointString, PubKeyHex, Wallet } from '../../../mod.js';
|
|
2
|
+
import Certificate from './Certificate.js';
|
|
3
|
+
/**
|
|
4
|
+
* MasterCertificate extends the base Certificate class to manage a master keyring, enabling the creation of verifiable certificates.
|
|
5
|
+
*
|
|
6
|
+
* It allows for the selective disclosure of certificate fields by creating a `VerifiableCertificate` for a specific verifier.
|
|
7
|
+
* The `MasterCertificate` can securely decrypt each master key and re-encrypt it for a verifier, creating a customized
|
|
8
|
+
* keyring containing only the keys necessary for the verifier to access designated fields.
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
export declare class MasterCertificate extends Certificate {
|
|
12
|
+
type: Base64String;
|
|
13
|
+
serialNumber: Base64String;
|
|
14
|
+
subject: PubKeyHex;
|
|
15
|
+
certifier: PubKeyHex;
|
|
16
|
+
revocationOutpoint: OutpointString;
|
|
17
|
+
fields: Record<CertificateFieldNameUnder50Bytes, string>;
|
|
18
|
+
signature?: HexString;
|
|
19
|
+
masterKeyring: Record<CertificateFieldNameUnder50Bytes, string>;
|
|
20
|
+
constructor(type: Base64String, serialNumber: Base64String, subject: PubKeyHex, certifier: PubKeyHex, revocationOutpoint: OutpointString, fields: Record<CertificateFieldNameUnder50Bytes, string>, masterKeyring: Record<CertificateFieldNameUnder50Bytes, string>, signature?: HexString);
|
|
21
|
+
/**
|
|
22
|
+
* Creates a verifiable certificate structure for a specific verifier, allowing them access to specified fields.
|
|
23
|
+
* This method decrypts the master field keys for each field specified in `fieldsToReveal` and re-encrypts them
|
|
24
|
+
* for the verifier's identity key. The resulting certificate structure includes only the fields intended to be
|
|
25
|
+
* revealed and a verifier-specific keyring for field decryption.
|
|
26
|
+
*
|
|
27
|
+
* @param {Wallet} subjectWallet - The wallet instance of the subject, used to decrypt and re-encrypt field keys.
|
|
28
|
+
* @param {string} verifierIdentityKey - The public identity key of the verifier who will receive access to the specified fields.
|
|
29
|
+
* @param {string[]} fieldsToReveal - An array of field names to be revealed to the verifier. Must be a subset of the certificate's fields.
|
|
30
|
+
* @param {string} [originator] - Optional originator identifier, used if additional context is needed for decryption and encryption operations.
|
|
31
|
+
* @returns {Promise<Object>} - A new certificate structure containing the original encrypted fields, the verifier-specific field decryption keyring, and essential certificate metadata.
|
|
32
|
+
* @throws {Error} Throws an error if:
|
|
33
|
+
* - fieldsToReveal is empty or a field in `fieldsToReveal` does not exist in the certificate.
|
|
34
|
+
* - The decrypted master field key fails to decrypt the corresponding field (indicating an invalid key).
|
|
35
|
+
*/
|
|
36
|
+
createKeyringForVerifier(subjectWallet: Wallet, verifierIdentityKey: string, fieldsToReveal: string[], originator?: string): Promise<Record<CertificateFieldNameUnder50Bytes, string>>;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=MasterCertificate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MasterCertificate.d.ts","sourceRoot":"","sources":["../../../../../src/auth/certificates/MasterCertificate.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EACZ,gCAAgC,EAChC,SAAS,EACT,cAAc,EACd,SAAS,EACT,MAAM,EACP,MAAM,iBAAiB,CAAA;AACxB,OAAO,WAAW,MAAM,kBAAkB,CAAA;AAE1C;;;;;;;GAOG;AACH,qBAAa,iBAAkB,SAAQ,WAAW;IACxC,IAAI,EAAE,YAAY,CAAA;IAClB,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,EAAE,SAAS,CAAA;IAClB,SAAS,EAAE,SAAS,CAAA;IACpB,kBAAkB,EAAE,cAAc,CAAA;IAClC,MAAM,EAAE,MAAM,CAAC,gCAAgC,EAAE,MAAM,CAAC,CAAA;IACxD,SAAS,CAAC,EAAE,SAAS,CAAA;IAE7B,aAAa,EAAE,MAAM,CAAC,gCAAgC,EAAE,MAAM,CAAC,CAAA;gBAG7D,IAAI,EAAE,YAAY,EAClB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,SAAS,EAClB,SAAS,EAAE,SAAS,EACpB,kBAAkB,EAAE,cAAc,EAClC,MAAM,EAAE,MAAM,CAAC,gCAAgC,EAAE,MAAM,CAAC,EACxD,aAAa,EAAE,MAAM,CAAC,gCAAgC,EAAE,MAAM,CAAC,EAC/D,SAAS,CAAC,EAAE,SAAS;IAMvB;;;;;;;;;;;;;;OAcG;IACG,wBAAwB,CAAC,aAAa,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,gCAAgC,EAAE,MAAM,CAAC,CAAC;CA6C7L"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Base64String, CertificateFieldNameUnder50Bytes, HexString, OutpointString, PubKeyHex, Wallet } from '../../../mod.js';
|
|
2
|
+
import Certificate from './Certificate.js';
|
|
3
|
+
/**
|
|
4
|
+
* VerifiableCertificate extends the Certificate class, adding functionality to manage a verifier-specific keyring.
|
|
5
|
+
* This keyring allows selective decryption of certificate fields for authorized verifiers.
|
|
6
|
+
*/
|
|
7
|
+
export declare class VerifiableCertificate extends Certificate {
|
|
8
|
+
type: Base64String;
|
|
9
|
+
serialNumber: Base64String;
|
|
10
|
+
subject: PubKeyHex;
|
|
11
|
+
certifier: PubKeyHex;
|
|
12
|
+
revocationOutpoint: OutpointString;
|
|
13
|
+
fields: Record<CertificateFieldNameUnder50Bytes, string>;
|
|
14
|
+
signature?: HexString;
|
|
15
|
+
keyring: Record<CertificateFieldNameUnder50Bytes, string>;
|
|
16
|
+
decryptedFields?: Record<CertificateFieldNameUnder50Bytes, Base64String>;
|
|
17
|
+
constructor(type: Base64String, serialNumber: Base64String, subject: PubKeyHex, certifier: PubKeyHex, revocationOutpoint: OutpointString, fields: Record<CertificateFieldNameUnder50Bytes, string>, signature?: HexString, keyring?: Record<CertificateFieldNameUnder50Bytes, string>, decryptedFields?: Record<CertificateFieldNameUnder50Bytes, Base64String>);
|
|
18
|
+
/**
|
|
19
|
+
* Decrypts certificate fields using the provided keyring and verifier wallet
|
|
20
|
+
* @param {Wallet} verifierWallet - The wallet instance of the certificate's verifier, used to decrypt field keys.
|
|
21
|
+
* @returns {Promise<Record<CertificateFieldNameUnder50Bytes, string>>} - A promise that resolves to an object where each key is a field name and each value is the decrypted field value as a string.
|
|
22
|
+
* @throws {Error} Throws an error if any of the decryption operations fail, with a message indicating the failure context.
|
|
23
|
+
*/
|
|
24
|
+
decryptFields(verifierWallet: Wallet): Promise<Record<CertificateFieldNameUnder50Bytes, string>>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=VerifiableCertificate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VerifiableCertificate.d.ts","sourceRoot":"","sources":["../../../../../src/auth/certificates/VerifiableCertificate.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EACZ,gCAAgC,EAChC,SAAS,EACT,cAAc,EACd,SAAS,EACT,MAAM,EACP,MAAM,iBAAiB,CAAA;AACxB,OAAO,WAAW,MAAM,kBAAkB,CAAA;AAE1C;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,WAAW;IAC5C,IAAI,EAAE,YAAY,CAAA;IAClB,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,EAAE,SAAS,CAAA;IAClB,SAAS,EAAE,SAAS,CAAA;IACpB,kBAAkB,EAAE,cAAc,CAAA;IAClC,MAAM,EAAE,MAAM,CAAC,gCAAgC,EAAE,MAAM,CAAC,CAAA;IACxD,SAAS,CAAC,EAAE,SAAS,CAAA;IAE7B,OAAO,EAAE,MAAM,CAAC,gCAAgC,EAAE,MAAM,CAAC,CAAA;IACzD,eAAe,CAAC,EAAE,MAAM,CAAC,gCAAgC,EAAE,YAAY,CAAC,CAAA;gBAGtE,IAAI,EAAE,YAAY,EAClB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,SAAS,EAClB,SAAS,EAAE,SAAS,EACpB,kBAAkB,EAAE,cAAc,EAClC,MAAM,EAAE,MAAM,CAAC,gCAAgC,EAAE,MAAM,CAAC,EACxD,SAAS,CAAC,EAAE,SAAS,EACrB,OAAO,CAAC,EAAE,MAAM,CAAC,gCAAgC,EAAE,MAAM,CAAC,EAC1D,eAAe,CAAC,EAAE,MAAM,CAAC,gCAAgC,EAAE,YAAY,CAAC;IAO1E;;;;;OAKG;IACG,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,gCAAgC,EAAE,MAAM,CAAC,CAAC;CAsBvG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/auth/certificates/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACzD,cAAc,wBAAwB,CAAA;AACtC,cAAc,4BAA4B,CAAA"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { Wallet } from '../../../mod.js';
|
|
2
|
+
import { Peer } from '../Peer.js';
|
|
3
|
+
import { SessionManager } from '../SessionManager.js';
|
|
4
|
+
import { RequestedCertificateSet } from '../types.js';
|
|
5
|
+
import { VerifiableCertificate } from '../certificates/VerifiableCertificate.js';
|
|
6
|
+
type SimplifiedFetchRequestOptions = {
|
|
7
|
+
method?: string;
|
|
8
|
+
headers?: Record<string, string>;
|
|
9
|
+
body?: any;
|
|
10
|
+
retryCounter?: number;
|
|
11
|
+
};
|
|
12
|
+
type AuthPeer = {
|
|
13
|
+
peer: Peer;
|
|
14
|
+
identityKey?: string;
|
|
15
|
+
supportsMutualAuth?: boolean;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* AuthFetch provides a lightweight fetch client for interacting with servers
|
|
19
|
+
* over a simplified HTTP transport mechanism. It integrates session management, peer communication,
|
|
20
|
+
* and certificate handling to enable secure and mutually-authenticated requests.
|
|
21
|
+
*
|
|
22
|
+
* Additionally, it automatically handles 402 Payment Required responses by creating
|
|
23
|
+
* and sending BSV payment transactions when necessary.
|
|
24
|
+
*/
|
|
25
|
+
export declare class AuthFetch {
|
|
26
|
+
private sessionManager;
|
|
27
|
+
private wallet;
|
|
28
|
+
private callbacks;
|
|
29
|
+
private certificatesReceived;
|
|
30
|
+
private requestedCertificates?;
|
|
31
|
+
peers: Record<string, AuthPeer>;
|
|
32
|
+
/**
|
|
33
|
+
* Constructs a new SimplifiedFetch instance.
|
|
34
|
+
* @param wallet - The wallet instance for signing and authentication.
|
|
35
|
+
* @param requestedCertificates - Optional set of certificates to request from peers.
|
|
36
|
+
*/
|
|
37
|
+
constructor(wallet: Wallet, requestedCertificates?: RequestedCertificateSet, sessionManager?: SessionManager);
|
|
38
|
+
/**
|
|
39
|
+
* Mutually authenticates and sends a HTTP request to a server.
|
|
40
|
+
*
|
|
41
|
+
* 1) Attempt the request.
|
|
42
|
+
* 2) If 402 Payment Required, automatically create and send payment.
|
|
43
|
+
* 3) Return the final response.
|
|
44
|
+
*
|
|
45
|
+
* @param url - The URL to send the request to.
|
|
46
|
+
* @param config - Configuration options for the request, including method, headers, and body.
|
|
47
|
+
* @returns A promise that resolves with the server's response, structured as a Response-like object.
|
|
48
|
+
*
|
|
49
|
+
* @throws Will throw an error if unsupported headers are used or other validation fails.
|
|
50
|
+
*/
|
|
51
|
+
fetch(url: string, config?: SimplifiedFetchRequestOptions): Promise<Response>;
|
|
52
|
+
/**
|
|
53
|
+
* Request Certificates from a Peer
|
|
54
|
+
* @param baseUrl
|
|
55
|
+
* @param certificatesToRequest
|
|
56
|
+
*/
|
|
57
|
+
sendCertificateRequest(baseUrl: string, certificatesToRequest: RequestedCertificateSet): Promise<VerifiableCertificate[]>;
|
|
58
|
+
/**
|
|
59
|
+
* Return any certificates we've collected thus far, then clear them out.
|
|
60
|
+
*/
|
|
61
|
+
consumeReceivedCertificates(): VerifiableCertificate[];
|
|
62
|
+
/**
|
|
63
|
+
* Serializes the HTTP request to be sent over the Transport.
|
|
64
|
+
*
|
|
65
|
+
* @param method - The HTTP method (e.g., 'GET', 'POST') for the request.
|
|
66
|
+
* @param headers - A record of HTTP headers to include in the request.
|
|
67
|
+
* @param body - The body of the request, if applicable (e.g., for POST/PUT requests).
|
|
68
|
+
* @param parsedUrl - The parsed URL object containing the full request URL.
|
|
69
|
+
* @param requestNonce - A unique random nonce to ensure request integrity.
|
|
70
|
+
* @returns A promise that resolves to a `Writer` containing the serialized request.
|
|
71
|
+
*
|
|
72
|
+
* @throws Will throw an error if unsupported headers are used or serialization fails.
|
|
73
|
+
*/
|
|
74
|
+
private serializeRequest;
|
|
75
|
+
/**
|
|
76
|
+
* Handles a non-authenticated fetch requests and validates that the server is not claiming to be authenticated.
|
|
77
|
+
*/
|
|
78
|
+
private handleFetchAndValidate;
|
|
79
|
+
/**
|
|
80
|
+
* If we get 402 Payment Required, we build a transaction via wallet.createAction()
|
|
81
|
+
* and re-attempt the request with an x-bsv-payment header.
|
|
82
|
+
*/
|
|
83
|
+
private handlePaymentAndRetry;
|
|
84
|
+
private normalizeBodyToNumberArray;
|
|
85
|
+
}
|
|
86
|
+
export {};
|
|
87
|
+
//# sourceMappingURL=AuthFetch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthFetch.d.ts","sourceRoot":"","sources":["../../../../../src/auth/clients/AuthFetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACzE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAA;AAGhF,KAAK,6BAA6B,GAAG;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AACD,KAAK,QAAQ,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAIlF;;;;;;;GAOG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,SAAS,CAA8D;IAC/E,OAAO,CAAC,oBAAoB,CAA8B;IAC1D,OAAO,CAAC,qBAAqB,CAAC,CAAyB;IACvD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAK;IAEpC;;;;MAIE;gBACU,MAAM,EAAE,MAAM,EAAE,qBAAqB,CAAC,EAAE,uBAAuB,EAAE,cAAc,CAAC,EAAE,cAAc;IAM5G;;;;;;;;;;;;OAYG;IACG,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,6BAAkC,GAAG,OAAO,CAAC,QAAQ,CAAC;IA4IvF;;;;OAIG;IACG,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,uBAAuB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAuC/H;;OAEG;IACI,2BAA2B,IAAI,qBAAqB,EAAE;IAI7D;;;;;;;;;;;OAWG;YACW,gBAAgB;IAgF9B;;OAEG;YACW,sBAAsB;IAgBpC;;;OAGG;YACW,qBAAqB;YAkErB,0BAA0B;CAmDzC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/auth/clients/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA"}
|
|
@@ -1,2 +1,8 @@
|
|
|
1
|
-
export
|
|
1
|
+
export * from './certificates/index.js';
|
|
2
|
+
export * from './Peer.js';
|
|
3
|
+
export * from './SessionManager.js';
|
|
4
|
+
export * from './types.js';
|
|
5
|
+
export * from './utils/index.js';
|
|
6
|
+
export * from './clients/index.js';
|
|
7
|
+
export * from './transports/index.js';
|
|
2
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/auth/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/auth/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,WAAW,CAAA;AACzB,cAAc,qBAAqB,CAAA;AACnC,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { AuthMessage, Transport } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Implements an HTTP-specific transport for handling Peer mutual authentication messages.
|
|
4
|
+
* This class integrates with fetch to send and receive authenticated messages between peers.
|
|
5
|
+
*/
|
|
6
|
+
export declare class SimplifiedFetchTransport implements Transport {
|
|
7
|
+
private onDataCallback?;
|
|
8
|
+
fetchClient: typeof fetch;
|
|
9
|
+
baseUrl: string;
|
|
10
|
+
/**
|
|
11
|
+
* Constructs a new instance of SimplifiedFetchTransport.
|
|
12
|
+
* @param baseUrl - The base URL for all HTTP requests made by this transport.
|
|
13
|
+
* @param fetchClient - A fetch implementation to use for HTTP requests (default: global fetch).
|
|
14
|
+
*/
|
|
15
|
+
constructor(baseUrl: string, fetchClient?: typeof fetch);
|
|
16
|
+
/**
|
|
17
|
+
* Sends a message to an HTTP server using the transport mechanism.
|
|
18
|
+
* Handles both general and authenticated message types. For general messages,
|
|
19
|
+
* the payload is deserialized and sent as an HTTP request. For other message types,
|
|
20
|
+
* the message is sent as a POST request to the `/auth` endpoint.
|
|
21
|
+
*
|
|
22
|
+
* @param message - The AuthMessage to send.
|
|
23
|
+
* @returns A promise that resolves when the message is successfully sent.
|
|
24
|
+
*
|
|
25
|
+
* @throws Will throw an error if no listener has been registered via `onData`.
|
|
26
|
+
*/
|
|
27
|
+
send(message: AuthMessage): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Registers a callback to handle incoming messages.
|
|
30
|
+
* This must be called before sending any messages to ensure responses can be processed.
|
|
31
|
+
*
|
|
32
|
+
* @param callback - A function to invoke when an incoming AuthMessage is received.
|
|
33
|
+
* @returns A promise that resolves once the callback is set.
|
|
34
|
+
*/
|
|
35
|
+
onData(callback: (message: AuthMessage) => Promise<void>): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Deserializes a request payload from a byte array into an HTTP request-like structure.
|
|
38
|
+
*
|
|
39
|
+
* @param payload - The serialized payload to deserialize.
|
|
40
|
+
* @returns An object representing the deserialized request, including the method,
|
|
41
|
+
* URL postfix (path and query string), headers, body, and request ID.
|
|
42
|
+
*/
|
|
43
|
+
deserializeRequestPayload(payload: number[]): {
|
|
44
|
+
method: string;
|
|
45
|
+
urlPostfix: string;
|
|
46
|
+
headers: Record<string, string>;
|
|
47
|
+
body: number[];
|
|
48
|
+
requestId: string;
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=SimplifiedFetchTransport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SimplifiedFetchTransport.d.ts","sourceRoot":"","sources":["../../../../../src/auth/transports/SimplifiedFetchTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA2B,SAAS,EAAE,MAAM,aAAa,CAAA;AAK7E;;;GAGG;AACH,qBAAa,wBAAyB,YAAW,SAAS;IACxD,OAAO,CAAC,cAAc,CAAC,CAAgC;IACvD,WAAW,EAAE,OAAO,KAAK,CAAA;IACzB,OAAO,EAAE,MAAM,CAAA;IAEf;;;;OAIG;gBACS,OAAO,EAAE,MAAM,EAAE,WAAW,eAAQ;IAKhD;;;;;;;;;;OAUG;IACG,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAwK/C;;;;;;OAMG;IACG,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAM9E;;;;;;OAMG;IACH,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG;QAC5C,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,SAAS,EAAE,MAAM,CAAA;KAClB;CA0DF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/auth/transports/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { VerifiableCertificate } from './certificates/VerifiableCertificate.js';
|
|
2
|
+
export interface RequestedCertificateTypeIDAndFieldList {
|
|
3
|
+
[certificateTypeID: string]: string[];
|
|
4
|
+
}
|
|
5
|
+
export interface RequestedCertificateSet {
|
|
6
|
+
certifiers: string[];
|
|
7
|
+
types: RequestedCertificateTypeIDAndFieldList;
|
|
8
|
+
}
|
|
9
|
+
export interface AuthMessage {
|
|
10
|
+
version: string;
|
|
11
|
+
messageType: 'initialRequest' | 'initialResponse' | 'certificateRequest' | 'certificateResponse' | 'general';
|
|
12
|
+
identityKey: string;
|
|
13
|
+
nonce?: string;
|
|
14
|
+
initialNonce?: string;
|
|
15
|
+
yourNonce?: string;
|
|
16
|
+
certificates?: VerifiableCertificate[];
|
|
17
|
+
requestedCertificates?: RequestedCertificateSet;
|
|
18
|
+
payload?: number[];
|
|
19
|
+
signature?: number[];
|
|
20
|
+
}
|
|
21
|
+
export interface Transport {
|
|
22
|
+
send: (message: AuthMessage) => Promise<void>;
|
|
23
|
+
onData: (callback: (message: AuthMessage) => Promise<void>) => Promise<void>;
|
|
24
|
+
}
|
|
25
|
+
export interface PeerSession {
|
|
26
|
+
isAuthenticated: boolean;
|
|
27
|
+
sessionNonce?: string;
|
|
28
|
+
peerNonce?: string;
|
|
29
|
+
peerIdentityKey?: string;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/auth/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAA;AAE/E,MAAM,WAAW,sCAAsC;IACrD,CAAC,iBAAiB,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CACtC;AAGD,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,KAAK,EAAE,sCAAsC,CAAA;CAC9C;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EACT,gBAAgB,GAChB,iBAAiB,GACjB,oBAAoB,GACpB,qBAAqB,GACrB,SAAS,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,qBAAqB,EAAE,CAAA;IACtC,qBAAqB,CAAC,EAAE,uBAAuB,CAAA;IAC/C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7C,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7E;AAED,MAAM,WAAW,WAAW;IAC1B,eAAe,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { PrivateKey, Wallet } from "../../../mod.js";
|
|
2
|
+
import { MasterCertificate } from "../certificates/MasterCertificate.js";
|
|
3
|
+
import { VerifiableCertificate } from "../certificates/VerifiableCertificate.js";
|
|
4
|
+
/**
|
|
5
|
+
* Creates a Master Certificate by encrypting provided fields and generating a master keyring.
|
|
6
|
+
*
|
|
7
|
+
* @param {Wallet} wallet - The wallet instance used for encryption and public key retrieval.
|
|
8
|
+
* @param {Record<string, string>} fields - The certificate fields to encrypt.
|
|
9
|
+
* @param {string} certificateType - The type of the certificate being created.
|
|
10
|
+
* @param {string} certificateSerialNumber - The serial number of the certificate.
|
|
11
|
+
* @param {string} certifierPublicKey - The public key of the certifier.
|
|
12
|
+
* @returns {Promise<MasterCertificate>} A promise resolving to the created Master Certificate.
|
|
13
|
+
*/
|
|
14
|
+
export declare function createMasterCertificate(wallet: Wallet, fields: Record<string, string>, certificateType: string, certificateSerialNumber: string, certifierPublicKey: string): Promise<MasterCertificate>;
|
|
15
|
+
/**
|
|
16
|
+
* Creates a Verifiable Certificate by signing a Master Certificate and generating a keyring for a verifier.
|
|
17
|
+
*
|
|
18
|
+
* @param {MasterCertificate} masterCertificate - The master certificate to convert into a verifiable certificate.
|
|
19
|
+
* @param {Wallet} wallet - The wallet instance used for generating a keyring for the verifier.
|
|
20
|
+
* @param {string} verifierIdentityKey - The identity key of the verifier.
|
|
21
|
+
* @param {string[]} fieldsToReveal - The list of fields to reveal to the verifier.
|
|
22
|
+
* @param {PrivateKey} certifierPrivateKey - The private key of the certifier for signing the certificate.
|
|
23
|
+
* @returns {Promise<VerifiableCertificate>} A promise resolving to the created Verifiable Certificate.
|
|
24
|
+
*/
|
|
25
|
+
export declare function createVerifiableCertificate(masterCertificate: MasterCertificate, wallet: Wallet, verifierIdentityKey: string, fieldsToReveal: string[], certifierPrivateKey: PrivateKey): Promise<VerifiableCertificate>;
|
|
26
|
+
//# sourceMappingURL=certificateHelpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"certificateHelpers.d.ts","sourceRoot":"","sources":["../../../../../src/auth/utils/certificateHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAuB,MAAM,EAAe,MAAM,iBAAiB,CAAA;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAA;AAEhF;;;;;;;;;GASG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,eAAe,EAAE,MAAM,EACvB,uBAAuB,EAAE,MAAM,EAC/B,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,iBAAiB,CAAC,CA2B5B;AAED;;;;;;;;;GASG;AACH,wBAAsB,2BAA2B,CAC/C,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,MAAM,EAC3B,cAAc,EAAE,MAAM,EAAE,EACxB,mBAAmB,EAAE,UAAU,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CAoBhC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Wallet } from '../../../mod.js';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a nonce derived from a privateKey
|
|
4
|
+
* @param wallet
|
|
5
|
+
* @returns A random nonce derived with a wallet
|
|
6
|
+
*/
|
|
7
|
+
export declare function createNonce(wallet: Wallet): Promise<string>;
|
|
8
|
+
//# sourceMappingURL=createNonce.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createNonce.d.ts","sourceRoot":"","sources":["../../../../../src/auth/utils/createNonce.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAEvD;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQjE"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { VerifiableCertificate } from "../certificates/VerifiableCertificate.js";
|
|
2
|
+
import { Wallet } from "../../../mod.js";
|
|
3
|
+
import { RequestedCertificateSet } from "../types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Retrieves an array of verifiable certificates based on the request.
|
|
6
|
+
*
|
|
7
|
+
* @private
|
|
8
|
+
* @param {RequestedCertificateSet} requestedCertificates - The set of certificates requested by the peer.
|
|
9
|
+
* @param {string} verifierIdentityKey - The public key of the verifier requesting the certificates.
|
|
10
|
+
* @returns {Promise<VerifiableCertificate[]>} An array of verifiable certificates.
|
|
11
|
+
*/
|
|
12
|
+
export declare const getVerifiableCertificates: (wallet: Wallet, requestedCertificates: RequestedCertificateSet, verifierIdentityKey: string) => Promise<VerifiableCertificate[]>;
|
|
13
|
+
//# sourceMappingURL=getVerifiableCertificates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getVerifiableCertificates.d.ts","sourceRoot":"","sources":["../../../../../src/auth/utils/getVerifiableCertificates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAA;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAErD;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,WAAkB,MAAM,yBAAyB,uBAAuB,uBAAuB,MAAM,KAAG,OAAO,CAAC,qBAAqB,EAAE,CA2B5K,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/auth/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,2BAA2B,CAAA;AACzC,cAAc,yBAAyB,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Wallet } from "../../wallet/index.js";
|
|
2
|
+
import { AuthMessage, RequestedCertificateSet } from "../types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Validates and processes the certificates received from a peer.
|
|
5
|
+
*
|
|
6
|
+
* @private
|
|
7
|
+
* @param {AuthMessage} message - The message containing the certificates to validate.
|
|
8
|
+
* @returns {Promise<void>}
|
|
9
|
+
* @throws Will throw an error if certificate validation or field decryption fails.
|
|
10
|
+
*/
|
|
11
|
+
export declare const validateCertificates: (verifierWallet: Wallet, message: AuthMessage, certificatesRequested?: RequestedCertificateSet) => Promise<void>;
|
|
12
|
+
//# sourceMappingURL=validateCertificates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateCertificates.d.ts","sourceRoot":"","sources":["../../../../../src/auth/utils/validateCertificates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAGlE;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,mBAA0B,MAAM,WAAW,WAAW,0BAA0B,uBAAuB,KAAG,OAAO,CAAC,IAAI,CAyCtJ,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Wallet } from '../../../mod.js';
|
|
2
|
+
/**
|
|
3
|
+
* Verifies a nonce derived from a wallet
|
|
4
|
+
* @param nonce - A nonce to verify as a base64 string.
|
|
5
|
+
* @param wallet
|
|
6
|
+
* @returns The status of the validation
|
|
7
|
+
*/
|
|
8
|
+
export declare function verifyNonce(nonce: string, wallet: Wallet): Promise<boolean>;
|
|
9
|
+
//# sourceMappingURL=verifyNonce.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verifyNonce.d.ts","sourceRoot":"","sources":["../../../../../src/auth/utils/verifyNonce.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAE/C;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAkBjF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Point.d.ts","sourceRoot":"","sources":["../../../../src/primitives/Point.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,MAAM,MAAM,oBAAoB,CAAA;AACvC,OAAO,SAAS,MAAM,gBAAgB,CAAA;AAItC;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,SAAS;IAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAoC;IAC/D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAA+C;IACxE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAA+C;IACxE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAA+C;IAC3E,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;IACnB,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;IACnB,GAAG,EAAE,OAAO,CAAA;IAEZ;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"Point.d.ts","sourceRoot":"","sources":["../../../../src/primitives/Point.ts"],"names":[],"mappings":"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"}
|