shogun-core 5.2.0 → 5.2.2
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/README.md +145 -1143
- package/dist/browser/defaultVendors-node_modules_hpke_chacha20poly1305_esm_mod_js.shogun-core.js +1220 -0
- package/dist/browser/defaultVendors-node_modules_hpke_chacha20poly1305_esm_mod_js.shogun-core.js.map +1 -0
- package/dist/browser/defaultVendors-node_modules_hpke_hybridkem-x-wing_esm_mod_js.shogun-core.js +844 -0
- package/dist/browser/defaultVendors-node_modules_hpke_hybridkem-x-wing_esm_mod_js.shogun-core.js.map +1 -0
- package/dist/browser/defaultVendors-node_modules_mlkem_esm_mod_js.shogun-core.js +2335 -0
- package/dist/browser/defaultVendors-node_modules_mlkem_esm_mod_js.shogun-core.js.map +1 -0
- package/dist/browser/defaultVendors-node_modules_noble_ciphers_chacha_js.shogun-core.js +999 -0
- package/dist/browser/defaultVendors-node_modules_noble_ciphers_chacha_js.shogun-core.js.map +1 -0
- package/dist/browser/defaultVendors-node_modules_noble_curves_esm_abstract_curve_js-node_modules_noble_curves_esm_-1ce4ed.shogun-core.js +1651 -0
- package/dist/browser/defaultVendors-node_modules_noble_curves_esm_abstract_curve_js-node_modules_noble_curves_esm_-1ce4ed.shogun-core.js.map +1 -0
- package/dist/browser/defaultVendors-node_modules_noble_curves_esm_abstract_edwards_js-node_modules_noble_curves_es-a82056.shogun-core.js +825 -0
- package/dist/browser/defaultVendors-node_modules_noble_curves_esm_abstract_edwards_js-node_modules_noble_curves_es-a82056.shogun-core.js.map +1 -0
- package/dist/browser/defaultVendors-node_modules_noble_curves_esm_ed25519_js.shogun-core.js +508 -0
- package/dist/browser/defaultVendors-node_modules_noble_curves_esm_ed25519_js.shogun-core.js.map +1 -0
- package/dist/browser/defaultVendors-node_modules_noble_curves_esm_ed448_js.shogun-core.js +747 -0
- package/dist/browser/defaultVendors-node_modules_noble_curves_esm_ed448_js.shogun-core.js.map +1 -0
- package/dist/browser/defaultVendors-node_modules_noble_curves_esm_nist_js.shogun-core.js +1608 -0
- package/dist/browser/defaultVendors-node_modules_noble_curves_esm_nist_js.shogun-core.js.map +1 -0
- package/dist/browser/defaultVendors-node_modules_noble_post-quantum_ml-dsa_js.shogun-core.js +2117 -0
- package/dist/browser/defaultVendors-node_modules_noble_post-quantum_ml-dsa_js.shogun-core.js.map +1 -0
- package/dist/browser/defaultVendors-node_modules_openpgp_dist_openpgp_min_mjs.shogun-core.js +86 -0
- package/dist/browser/defaultVendors-node_modules_openpgp_dist_openpgp_min_mjs.shogun-core.js.map +1 -0
- package/dist/browser/node_modules_hpke_ml-kem_esm_mod_js.shogun-core.js +539 -0
- package/dist/browser/node_modules_hpke_ml-kem_esm_mod_js.shogun-core.js.map +1 -0
- package/dist/browser/shogun-core.js +160386 -0
- package/dist/browser/shogun-core.js.map +1 -0
- package/dist/config/simplified-config.js +236 -0
- package/dist/core.js +329 -0
- package/dist/crypto/asymmetric.js +99 -0
- package/dist/crypto/double-ratchet.js +370 -0
- package/dist/crypto/file-encryption.js +213 -0
- package/dist/crypto/hashing.js +87 -0
- package/dist/crypto/index.js +34 -0
- package/dist/crypto/mls-codec.js +202 -0
- package/dist/crypto/mls.js +550 -0
- package/dist/crypto/pgp.js +390 -0
- package/dist/crypto/random-generation.js +341 -0
- package/dist/crypto/sframe.js +350 -0
- package/dist/crypto/signal-protocol.js +376 -0
- package/dist/crypto/symmetric.js +91 -0
- package/dist/crypto/types.js +2 -0
- package/dist/crypto/utils.js +140 -0
- package/dist/examples/auth-test.js +253 -0
- package/dist/examples/crypto-identity-example.js +151 -0
- package/dist/examples/crypto-working-test.js +83 -0
- package/dist/examples/double-ratchet-test.js +155 -0
- package/dist/examples/mls-advanced-example.js +294 -0
- package/dist/examples/mls-sframe-test.js +304 -0
- package/dist/examples/pgp-example.js +200 -0
- package/dist/examples/quick-auth-test.js +61 -0
- package/dist/examples/random-generation-test.js +151 -0
- package/dist/examples/signal-protocol-test.js +38 -0
- package/dist/examples/simple-api-test.js +114 -0
- package/dist/examples/simple-crypto-identity-example.js +84 -0
- package/dist/examples/timeout-test.js +227 -0
- package/dist/examples/zkproof-credentials-example.js +212 -0
- package/dist/examples/zkproof-example.js +201 -0
- package/dist/gundb/api.js +435 -0
- package/dist/gundb/crypto.js +283 -0
- package/dist/gundb/db.js +1946 -0
- package/dist/gundb/derive.js +232 -0
- package/dist/gundb/errors.js +76 -0
- package/dist/gundb/index.js +22 -0
- package/dist/gundb/rxjs.js +447 -0
- package/dist/gundb/types.js +5 -0
- package/dist/index.js +58 -0
- package/dist/interfaces/common.js +2 -0
- package/dist/interfaces/events.js +40 -0
- package/dist/interfaces/plugin.js +2 -0
- package/dist/interfaces/shogun.js +37 -0
- package/dist/managers/AuthManager.js +226 -0
- package/dist/managers/CoreInitializer.js +228 -0
- package/dist/managers/CryptoIdentityManager.js +366 -0
- package/dist/managers/EventManager.js +70 -0
- package/dist/managers/PluginManager.js +299 -0
- package/dist/plugins/base.js +50 -0
- package/dist/plugins/index.js +32 -0
- package/dist/plugins/nostr/index.js +20 -0
- package/dist/plugins/nostr/nostrConnector.js +419 -0
- package/dist/plugins/nostr/nostrConnectorPlugin.js +453 -0
- package/dist/plugins/nostr/nostrSigner.js +319 -0
- package/dist/plugins/nostr/types.js +2 -0
- package/dist/plugins/smartwallet/index.js +18 -0
- package/dist/plugins/smartwallet/smartWalletPlugin.js +511 -0
- package/dist/plugins/smartwallet/types.js +2 -0
- package/dist/plugins/web3/index.js +20 -0
- package/dist/plugins/web3/types.js +2 -0
- package/dist/plugins/web3/web3Connector.js +533 -0
- package/dist/plugins/web3/web3ConnectorPlugin.js +455 -0
- package/dist/plugins/web3/web3Signer.js +314 -0
- package/dist/plugins/webauthn/index.js +19 -0
- package/dist/plugins/webauthn/types.js +14 -0
- package/dist/plugins/webauthn/webauthn.js +496 -0
- package/dist/plugins/webauthn/webauthnPlugin.js +489 -0
- package/dist/plugins/webauthn/webauthnSigner.js +310 -0
- package/dist/plugins/zkproof/index.js +53 -0
- package/dist/plugins/zkproof/types.js +2 -0
- package/dist/plugins/zkproof/zkCredentials.js +213 -0
- package/dist/plugins/zkproof/zkProofConnector.js +198 -0
- package/dist/plugins/zkproof/zkProofPlugin.js +272 -0
- package/dist/storage/storage.js +145 -0
- package/dist/types/config/simplified-config.d.ts +114 -0
- package/dist/types/core.d.ts +305 -0
- package/dist/types/crypto/asymmetric.d.ts +6 -0
- package/dist/types/crypto/double-ratchet.d.ts +22 -0
- package/dist/types/crypto/file-encryption.d.ts +19 -0
- package/dist/types/crypto/hashing.d.ts +9 -0
- package/dist/types/crypto/index.d.ts +13 -0
- package/dist/types/crypto/mls-codec.d.ts +39 -0
- package/dist/types/crypto/mls.d.ts +130 -0
- package/dist/types/crypto/pgp.d.ts +95 -0
- package/dist/types/crypto/random-generation.d.ts +35 -0
- package/dist/types/crypto/sframe.d.ts +102 -0
- package/dist/types/crypto/signal-protocol.d.ts +26 -0
- package/dist/types/crypto/symmetric.d.ts +9 -0
- package/dist/types/crypto/types.d.ts +144 -0
- package/dist/types/crypto/utils.d.ts +22 -0
- package/dist/types/examples/auth-test.d.ts +8 -0
- package/dist/types/examples/crypto-identity-example.d.ts +5 -0
- package/dist/types/examples/crypto-working-test.d.ts +1 -0
- package/dist/types/examples/double-ratchet-test.d.ts +1 -0
- package/dist/types/examples/mls-advanced-example.d.ts +53 -0
- package/dist/types/examples/mls-sframe-test.d.ts +1 -0
- package/dist/types/examples/pgp-example.d.ts +75 -0
- package/dist/types/examples/quick-auth-test.d.ts +8 -0
- package/dist/types/examples/random-generation-test.d.ts +1 -0
- package/dist/types/examples/signal-protocol-test.d.ts +1 -0
- package/dist/types/examples/simple-api-test.d.ts +10 -0
- package/dist/types/examples/simple-crypto-identity-example.d.ts +6 -0
- package/dist/types/examples/timeout-test.d.ts +8 -0
- package/dist/types/examples/zkproof-credentials-example.d.ts +12 -0
- package/dist/types/examples/zkproof-example.d.ts +11 -0
- package/dist/types/gundb/api.d.ts +185 -0
- package/dist/types/gundb/crypto.d.ts +95 -0
- package/dist/types/gundb/db.d.ts +397 -0
- package/dist/types/gundb/derive.d.ts +21 -0
- package/dist/types/gundb/errors.d.ts +42 -0
- package/dist/types/gundb/index.d.ts +3 -0
- package/dist/types/gundb/rxjs.d.ts +110 -0
- package/dist/types/gundb/types.d.ts +255 -0
- package/dist/types/index.d.ts +16 -0
- package/dist/types/interfaces/common.d.ts +85 -0
- package/dist/types/interfaces/events.d.ts +131 -0
- package/dist/types/interfaces/plugin.d.ts +162 -0
- package/dist/types/interfaces/shogun.d.ts +208 -0
- package/dist/types/managers/AuthManager.d.ts +72 -0
- package/dist/types/managers/CoreInitializer.d.ts +40 -0
- package/dist/types/managers/CryptoIdentityManager.d.ts +102 -0
- package/dist/types/managers/EventManager.d.ts +49 -0
- package/dist/types/managers/PluginManager.d.ts +145 -0
- package/dist/types/plugins/base.d.ts +35 -0
- package/dist/types/plugins/index.d.ts +18 -0
- package/dist/types/plugins/nostr/index.d.ts +4 -0
- package/dist/types/plugins/nostr/nostrConnector.d.ts +119 -0
- package/dist/types/plugins/nostr/nostrConnectorPlugin.d.ts +163 -0
- package/dist/types/plugins/nostr/nostrSigner.d.ts +105 -0
- package/dist/types/plugins/nostr/types.d.ts +122 -0
- package/dist/types/plugins/smartwallet/index.d.ts +2 -0
- package/dist/types/plugins/smartwallet/smartWalletPlugin.d.ts +67 -0
- package/dist/types/plugins/smartwallet/types.d.ts +80 -0
- package/dist/types/plugins/web3/index.d.ts +4 -0
- package/dist/types/plugins/web3/types.d.ts +107 -0
- package/dist/types/plugins/web3/web3Connector.d.ts +129 -0
- package/dist/types/plugins/web3/web3ConnectorPlugin.d.ts +160 -0
- package/dist/types/plugins/web3/web3Signer.d.ts +114 -0
- package/dist/types/plugins/webauthn/index.d.ts +3 -0
- package/dist/types/plugins/webauthn/types.d.ts +183 -0
- package/dist/types/plugins/webauthn/webauthn.d.ts +129 -0
- package/dist/types/plugins/webauthn/webauthnPlugin.d.ts +179 -0
- package/dist/types/plugins/webauthn/webauthnSigner.d.ts +91 -0
- package/dist/types/plugins/zkproof/index.d.ts +48 -0
- package/dist/types/plugins/zkproof/types.d.ts +123 -0
- package/dist/types/plugins/zkproof/zkCredentials.d.ts +112 -0
- package/dist/types/plugins/zkproof/zkProofConnector.d.ts +46 -0
- package/dist/types/plugins/zkproof/zkProofPlugin.d.ts +76 -0
- package/dist/types/storage/storage.d.ts +51 -0
- package/dist/types/utils/errorHandler.d.ts +119 -0
- package/dist/types/utils/eventEmitter.d.ts +39 -0
- package/dist/types/utils/seedPhrase.d.ts +50 -0
- package/dist/types/utils/validation.d.ts +27 -0
- package/dist/utils/errorHandler.js +246 -0
- package/dist/utils/eventEmitter.js +79 -0
- package/dist/utils/seedPhrase.js +97 -0
- package/dist/utils/validation.js +81 -0
- package/package.json +10 -57
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PGP/OpenPGP Implementation
|
|
3
|
+
* Simple and immediate PGP functionality using openpgp library
|
|
4
|
+
* Provides encryption, decryption, signing, and key management
|
|
5
|
+
*/
|
|
6
|
+
export interface PGPKeyPair {
|
|
7
|
+
publicKey: string;
|
|
8
|
+
privateKey: string;
|
|
9
|
+
keyId: string;
|
|
10
|
+
fingerprint: string;
|
|
11
|
+
created: Date;
|
|
12
|
+
}
|
|
13
|
+
export interface PGPEncryptedMessage {
|
|
14
|
+
message: string;
|
|
15
|
+
signature?: string;
|
|
16
|
+
encrypted: boolean;
|
|
17
|
+
signed: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface PGPSignature {
|
|
20
|
+
message: string;
|
|
21
|
+
signature: string;
|
|
22
|
+
valid: boolean;
|
|
23
|
+
keyId?: string;
|
|
24
|
+
}
|
|
25
|
+
export declare class PGPManager {
|
|
26
|
+
private openpgp;
|
|
27
|
+
private initialized;
|
|
28
|
+
constructor();
|
|
29
|
+
/**
|
|
30
|
+
* Initialize PGP manager with openpgp library
|
|
31
|
+
*/
|
|
32
|
+
initialize(): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Generate a new PGP key pair
|
|
35
|
+
*/
|
|
36
|
+
generateKeyPair(name: string, email: string, passphrase?: string): Promise<PGPKeyPair>;
|
|
37
|
+
/**
|
|
38
|
+
* Encrypt a message with public key
|
|
39
|
+
*/
|
|
40
|
+
encryptMessage(message: string, publicKeyArmored: string, privateKeyArmored?: string, passphrase?: string): Promise<PGPEncryptedMessage>;
|
|
41
|
+
/**
|
|
42
|
+
* Decrypt a message with private key
|
|
43
|
+
*/
|
|
44
|
+
decryptMessage(encryptedMessage: string, privateKeyArmored: string, passphrase?: string): Promise<string>;
|
|
45
|
+
/**
|
|
46
|
+
* Sign a message with private key
|
|
47
|
+
*/
|
|
48
|
+
signMessage(message: string, privateKeyArmored: string, passphrase?: string): Promise<PGPSignature>;
|
|
49
|
+
/**
|
|
50
|
+
* Verify a message signature
|
|
51
|
+
*/
|
|
52
|
+
verifySignature(message: string, signature: string, publicKeyArmored: string): Promise<PGPSignature>;
|
|
53
|
+
/**
|
|
54
|
+
* Get key information from armored key
|
|
55
|
+
*/
|
|
56
|
+
getKeyInfo(keyArmored: string): Promise<any>;
|
|
57
|
+
/**
|
|
58
|
+
* Export key in different formats
|
|
59
|
+
*/
|
|
60
|
+
exportKey(keyArmored: string, format?: "armored" | "binary"): Promise<string | Uint8Array>;
|
|
61
|
+
/**
|
|
62
|
+
* Import key from different formats
|
|
63
|
+
*/
|
|
64
|
+
importKey(keyData: string | Uint8Array, format?: "armored" | "binary"): Promise<string>;
|
|
65
|
+
/**
|
|
66
|
+
* Clean up resources
|
|
67
|
+
*/
|
|
68
|
+
destroy(): void;
|
|
69
|
+
/**
|
|
70
|
+
* Ensure the manager is initialized
|
|
71
|
+
*/
|
|
72
|
+
private ensureInitialized;
|
|
73
|
+
}
|
|
74
|
+
export declare const createPGPManager: () => Promise<PGPManager>;
|
|
75
|
+
export declare const generatePGPKeyPair: (name: string, email: string, passphrase?: string) => Promise<PGPKeyPair>;
|
|
76
|
+
export declare const encryptPGPMessage: (message: string, publicKey: string, privateKey?: string, passphrase?: string) => Promise<PGPEncryptedMessage>;
|
|
77
|
+
export declare const decryptPGPMessage: (encryptedMessage: string, privateKey: string, passphrase?: string) => Promise<string>;
|
|
78
|
+
export declare const signPGPMessage: (message: string, privateKey: string, passphrase?: string) => Promise<PGPSignature>;
|
|
79
|
+
export declare const verifyPGPSignature: (message: string, signature: string, publicKey: string) => Promise<PGPSignature>;
|
|
80
|
+
export declare const demonstratePGP: () => Promise<{
|
|
81
|
+
success: boolean;
|
|
82
|
+
messageDecrypted: boolean;
|
|
83
|
+
signatureValid: boolean;
|
|
84
|
+
aliceKeyInfo: any;
|
|
85
|
+
bobKeyInfo: any;
|
|
86
|
+
demonstration: {
|
|
87
|
+
keyGeneration: boolean;
|
|
88
|
+
encryption: boolean;
|
|
89
|
+
decryption: boolean;
|
|
90
|
+
signing: boolean;
|
|
91
|
+
verification: boolean;
|
|
92
|
+
keyManagement: boolean;
|
|
93
|
+
};
|
|
94
|
+
}>;
|
|
95
|
+
export default PGPManager;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export declare const generateRandomString: (length?: number, additionalSalt?: string) => string;
|
|
2
|
+
export declare const randomBytes: (length: number) => Uint8Array;
|
|
3
|
+
export declare const randomInt: (min: number, max: number) => number;
|
|
4
|
+
export declare const randomFloat: () => number;
|
|
5
|
+
export declare const randomBool: () => boolean;
|
|
6
|
+
export declare const randomUUID: () => string;
|
|
7
|
+
export declare class DeterministicRandom {
|
|
8
|
+
private seed;
|
|
9
|
+
constructor(seed: string | number);
|
|
10
|
+
private hashString;
|
|
11
|
+
private lcg;
|
|
12
|
+
integer(min?: number, max?: number): number;
|
|
13
|
+
floating(min?: number, max?: number, fixed?: number): number;
|
|
14
|
+
bool(): boolean;
|
|
15
|
+
string(length?: number, pool?: string): string;
|
|
16
|
+
guid(): string;
|
|
17
|
+
choice<T>(array: T[]): T;
|
|
18
|
+
shuffle<T>(array: T[]): T[];
|
|
19
|
+
color(): string;
|
|
20
|
+
date(start: Date, end: Date): Date;
|
|
21
|
+
}
|
|
22
|
+
export declare const createDeterministicRandom: (seed: string | number) => DeterministicRandom;
|
|
23
|
+
export declare const chance: (seed: string | number) => DeterministicRandom;
|
|
24
|
+
export declare const randomChoice: <T>(array: T[]) => T;
|
|
25
|
+
export declare const randomShuffle: <T>(array: T[]) => T[];
|
|
26
|
+
export declare const randomColor: () => string;
|
|
27
|
+
export declare const randomPassword: (options?: {
|
|
28
|
+
length?: number;
|
|
29
|
+
includeUppercase?: boolean;
|
|
30
|
+
includeLowercase?: boolean;
|
|
31
|
+
includeNumbers?: boolean;
|
|
32
|
+
includeSymbols?: boolean;
|
|
33
|
+
excludeSimilar?: boolean;
|
|
34
|
+
}) => string;
|
|
35
|
+
export declare const randomSeedPhrase: (wordCount?: number) => string[];
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SFrame (Secure Frame) Manager
|
|
3
|
+
* End-to-end encryption for real-time media frames (audio/video)
|
|
4
|
+
* Designed for low overhead and high performance
|
|
5
|
+
*
|
|
6
|
+
* SFrame adds ~10 bytes per frame overhead
|
|
7
|
+
* Compatible with WebRTC Insertable Streams API
|
|
8
|
+
*/
|
|
9
|
+
export interface SFrameKey {
|
|
10
|
+
keyId: number;
|
|
11
|
+
key: CryptoKey;
|
|
12
|
+
salt: Uint8Array;
|
|
13
|
+
}
|
|
14
|
+
export interface SFrameEncryptedFrame {
|
|
15
|
+
frameCount: number;
|
|
16
|
+
keyId: number;
|
|
17
|
+
iv: Uint8Array;
|
|
18
|
+
ciphertext: Uint8Array;
|
|
19
|
+
authTag: Uint8Array;
|
|
20
|
+
}
|
|
21
|
+
export declare class SFrameManager {
|
|
22
|
+
private keys;
|
|
23
|
+
private currentKeyId;
|
|
24
|
+
private frameCounter;
|
|
25
|
+
private initialized;
|
|
26
|
+
constructor();
|
|
27
|
+
/**
|
|
28
|
+
* Initialize the SFrame manager
|
|
29
|
+
*/
|
|
30
|
+
initialize(): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Generate a new SFrame encryption key
|
|
33
|
+
*/
|
|
34
|
+
generateKey(keyId: number): Promise<SFrameKey>;
|
|
35
|
+
/**
|
|
36
|
+
* Derive an SFrame key from MLS shared secret
|
|
37
|
+
* This allows SFrame to use keys derived from MLS for media encryption
|
|
38
|
+
* RFC 9605 Section 5.2: MLS-based key management
|
|
39
|
+
*/
|
|
40
|
+
deriveKeyFromMLSSecret(mlsSecret: ArrayBuffer, keyId: number, context?: string): Promise<SFrameKey>;
|
|
41
|
+
/**
|
|
42
|
+
* Set the active encryption key
|
|
43
|
+
*/
|
|
44
|
+
setActiveKey(keyId: number): void;
|
|
45
|
+
/**
|
|
46
|
+
* Encrypt a media frame using SFrame
|
|
47
|
+
*/
|
|
48
|
+
encryptFrame(frameData: ArrayBuffer): Promise<Uint8Array>;
|
|
49
|
+
/**
|
|
50
|
+
* Decrypt a media frame using SFrame
|
|
51
|
+
*/
|
|
52
|
+
decryptFrame(encryptedFrame: Uint8Array): Promise<ArrayBuffer>;
|
|
53
|
+
/**
|
|
54
|
+
* Encrypt transform function for Insertable Streams
|
|
55
|
+
* Use this with RTCRtpSender.createEncodedStreams()
|
|
56
|
+
*/
|
|
57
|
+
createEncryptTransform(): TransformStream;
|
|
58
|
+
/**
|
|
59
|
+
* Decrypt transform function for Insertable Streams
|
|
60
|
+
* Use this with RTCRtpReceiver.createEncodedStreams()
|
|
61
|
+
*/
|
|
62
|
+
createDecryptTransform(): TransformStream;
|
|
63
|
+
/**
|
|
64
|
+
* Rotate encryption keys
|
|
65
|
+
* RFC 9605: Frame counter should be reset on key rotation to prevent exhaustion
|
|
66
|
+
*/
|
|
67
|
+
rotateKey(): Promise<number>;
|
|
68
|
+
/**
|
|
69
|
+
* Get current key ID
|
|
70
|
+
*/
|
|
71
|
+
getCurrentKeyId(): number;
|
|
72
|
+
/**
|
|
73
|
+
* Get frame counter (for debugging)
|
|
74
|
+
*/
|
|
75
|
+
getFrameCounter(): number;
|
|
76
|
+
/**
|
|
77
|
+
* Reset frame counter (use when rotating keys)
|
|
78
|
+
*/
|
|
79
|
+
resetFrameCounter(): void;
|
|
80
|
+
/**
|
|
81
|
+
* Remove old keys to prevent memory bloat
|
|
82
|
+
*/
|
|
83
|
+
cleanupOldKeys(keepLast?: number): void;
|
|
84
|
+
/**
|
|
85
|
+
* Get statistics
|
|
86
|
+
*/
|
|
87
|
+
getStats(): {
|
|
88
|
+
keyCount: number;
|
|
89
|
+
currentKeyId: number;
|
|
90
|
+
frameCounter: number;
|
|
91
|
+
initialized: boolean;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Clean up resources
|
|
95
|
+
*/
|
|
96
|
+
destroy(): void;
|
|
97
|
+
/**
|
|
98
|
+
* Ensure the manager is initialized
|
|
99
|
+
*/
|
|
100
|
+
private ensureInitialized;
|
|
101
|
+
}
|
|
102
|
+
export default SFrameManager;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { SignalUser, SignalPublicKeyBundle, X3DHExchangeResult } from "./types";
|
|
2
|
+
export declare const generateSignalKeyPair: () => Promise<CryptoKeyPair>;
|
|
3
|
+
export declare const generateSignalSigningKeyPair: () => Promise<CryptoKeyPair>;
|
|
4
|
+
export declare const exportSignalPublicKey: (publicKey: CryptoKey) => Promise<ArrayBuffer>;
|
|
5
|
+
export declare const importSignalPublicKey: (keyBytes: ArrayBuffer) => Promise<CryptoKey>;
|
|
6
|
+
export declare const importSignalSigningPublicKey: (keyBytes: ArrayBuffer) => Promise<CryptoKey>;
|
|
7
|
+
export declare const performSignalDH: (privateKey: CryptoKey, publicKey: CryptoKey) => Promise<ArrayBuffer>;
|
|
8
|
+
export declare const signSignalData: (privateKey: CryptoKey, data: ArrayBuffer) => Promise<ArrayBuffer>;
|
|
9
|
+
export declare const verifySignalSignature: (publicKey: CryptoKey, signature: ArrayBuffer, data: ArrayBuffer) => Promise<boolean>;
|
|
10
|
+
export declare const deriveSignalKey: (inputKeyMaterial: ArrayBuffer, salt: ArrayBuffer, info: ArrayBuffer, length?: number) => Promise<CryptoKey>;
|
|
11
|
+
export declare const concatSignalArrayBuffers: (...buffers: ArrayBuffer[]) => ArrayBuffer;
|
|
12
|
+
export declare const bufferToSignalHex: (buffer: ArrayBuffer) => string;
|
|
13
|
+
export declare const initializeSignalUser: (name: string) => Promise<SignalUser>;
|
|
14
|
+
export declare const getSignalPublicKeyBundle: (user: SignalUser) => Promise<SignalPublicKeyBundle>;
|
|
15
|
+
export declare const consumeSignalOneTimePrekey: (user: SignalUser) => CryptoKeyPair | undefined;
|
|
16
|
+
export declare const performSignalX3DHKeyExchange: (alice: SignalUser, bobBundle: SignalPublicKeyBundle) => Promise<X3DHExchangeResult>;
|
|
17
|
+
export declare const deriveSignalSharedSecret: (bob: SignalUser, aliceEphemeralPublic: ArrayBuffer, aliceIdentityPublic: ArrayBuffer, usedOneTimePrekey: boolean, oneTimePrekeyBytes?: ArrayBuffer | null) => Promise<ArrayBuffer>;
|
|
18
|
+
export declare const demonstrateSignalProtocol: () => Promise<{
|
|
19
|
+
success: boolean;
|
|
20
|
+
aliceSecret: string;
|
|
21
|
+
bobSecret: string;
|
|
22
|
+
usedOneTimePrekey: boolean;
|
|
23
|
+
alice: SignalUser;
|
|
24
|
+
bob: SignalUser;
|
|
25
|
+
exchangeResult: X3DHExchangeResult;
|
|
26
|
+
}>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { EncryptedData } from "./types";
|
|
2
|
+
export declare const generateSymmetricKey: () => Promise<JsonWebKey>;
|
|
3
|
+
export declare const deserializeSymmetricKey: (key: JsonWebKey | string) => Promise<CryptoKey>;
|
|
4
|
+
export declare const encryptWithSymmetricKey: (message: string, key: CryptoKey) => Promise<EncryptedData>;
|
|
5
|
+
export declare const decryptWithSymmetricKey: (encryptedData: EncryptedData, key: CryptoKey) => Promise<string>;
|
|
6
|
+
export declare const deriveKeyFromPassword: (password: string, salt?: ArrayBuffer) => Promise<{
|
|
7
|
+
key: CryptoKey;
|
|
8
|
+
salt: ArrayBuffer;
|
|
9
|
+
}>;
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
export interface CryptoKeyPair {
|
|
2
|
+
publicKey: CryptoKey;
|
|
3
|
+
privateKey: CryptoKey;
|
|
4
|
+
}
|
|
5
|
+
export interface JWKKeyPair {
|
|
6
|
+
publicKey: JsonWebKey;
|
|
7
|
+
privateKey: JsonWebKey;
|
|
8
|
+
}
|
|
9
|
+
export interface SymmetricKey {
|
|
10
|
+
key: CryptoKey;
|
|
11
|
+
jwk: JsonWebKey;
|
|
12
|
+
}
|
|
13
|
+
export interface EncryptedData {
|
|
14
|
+
ciphertext: string;
|
|
15
|
+
iv: string;
|
|
16
|
+
}
|
|
17
|
+
export interface EncryptedFilePackage {
|
|
18
|
+
encryptedData: string;
|
|
19
|
+
iv: string;
|
|
20
|
+
salt: string;
|
|
21
|
+
fileName: string;
|
|
22
|
+
timestamp: string;
|
|
23
|
+
originalSize: number;
|
|
24
|
+
mimeType?: string;
|
|
25
|
+
fileSize?: number;
|
|
26
|
+
}
|
|
27
|
+
export interface DecryptedFileResult {
|
|
28
|
+
data: ArrayBuffer;
|
|
29
|
+
fileName: string;
|
|
30
|
+
originalSize: number;
|
|
31
|
+
decryptedSize: number;
|
|
32
|
+
blob?: Blob;
|
|
33
|
+
mimeType?: string;
|
|
34
|
+
textContent?: string;
|
|
35
|
+
isTextFile?: boolean;
|
|
36
|
+
metadata?: any;
|
|
37
|
+
}
|
|
38
|
+
export interface SignalUser {
|
|
39
|
+
name: string;
|
|
40
|
+
identityKeyPair: CryptoKeyPair;
|
|
41
|
+
identitySigningKeyPair: CryptoKeyPair;
|
|
42
|
+
signedPrekeyPair: CryptoKeyPair;
|
|
43
|
+
signedPrekeySignature: ArrayBuffer;
|
|
44
|
+
oneTimePrekeyPairs: CryptoKeyPair[];
|
|
45
|
+
}
|
|
46
|
+
export interface SignalPublicKeyBundle {
|
|
47
|
+
identityKey: ArrayBuffer;
|
|
48
|
+
identitySigningKey: ArrayBuffer;
|
|
49
|
+
signedPrekey: ArrayBuffer;
|
|
50
|
+
signedPrekeySignature: ArrayBuffer;
|
|
51
|
+
oneTimePrekey: ArrayBuffer | null;
|
|
52
|
+
}
|
|
53
|
+
export interface X3DHExchangeResult {
|
|
54
|
+
masterSecret: ArrayBuffer;
|
|
55
|
+
aliceEphemeralPublic: ArrayBuffer;
|
|
56
|
+
usedOneTimePrekey: boolean;
|
|
57
|
+
}
|
|
58
|
+
export interface DoubleRatchetState {
|
|
59
|
+
rootKey: ArrayBuffer;
|
|
60
|
+
sendingChainKey: ArrayBuffer | null;
|
|
61
|
+
receivingChainKey: ArrayBuffer | null;
|
|
62
|
+
sendingDHKeyPair: CryptoKeyPair | null;
|
|
63
|
+
receivingDHPublicKey: CryptoKey | null;
|
|
64
|
+
sendingMessageNumber: number;
|
|
65
|
+
receivingMessageNumber: number;
|
|
66
|
+
previousChainLength: number;
|
|
67
|
+
skippedMessageKeys: Map<string, Uint8Array>;
|
|
68
|
+
isInitiator: boolean;
|
|
69
|
+
initialized: number;
|
|
70
|
+
}
|
|
71
|
+
export interface MessageEnvelope {
|
|
72
|
+
dhPublicKey: Uint8Array;
|
|
73
|
+
messageNumber: number;
|
|
74
|
+
previousChainLength: number;
|
|
75
|
+
ciphertext: Uint8Array;
|
|
76
|
+
iv: Uint8Array;
|
|
77
|
+
timestamp: number;
|
|
78
|
+
}
|
|
79
|
+
export interface CryptoConfig {
|
|
80
|
+
enabled: boolean;
|
|
81
|
+
algorithms: string[];
|
|
82
|
+
keySize?: number;
|
|
83
|
+
iterations?: number;
|
|
84
|
+
}
|
|
85
|
+
export interface CryptoMethods {
|
|
86
|
+
randomString: (additionalSalt?: string) => string;
|
|
87
|
+
sha256Hash: (input: any) => Promise<string>;
|
|
88
|
+
sha512Hash: (input: any) => Promise<string>;
|
|
89
|
+
sha3_512Hash: (input: any) => Promise<string>;
|
|
90
|
+
generateKeyPair: () => Promise<JWKKeyPair>;
|
|
91
|
+
deserializePublicKey: (key: JsonWebKey | string) => Promise<CryptoKey>;
|
|
92
|
+
deserializePrivateKey: (key: JsonWebKey | string) => Promise<CryptoKey>;
|
|
93
|
+
encrypt: (message: string, publicKey: CryptoKey) => Promise<string>;
|
|
94
|
+
decrypt: (encryptedMessage: string, privateKey: CryptoKey) => Promise<string>;
|
|
95
|
+
generateSymmetricKey: () => Promise<JsonWebKey>;
|
|
96
|
+
deserializeSymmetricKey: (key: JsonWebKey | string) => Promise<CryptoKey>;
|
|
97
|
+
encryptWithSymmetricKey: (message: string, key: CryptoKey) => Promise<EncryptedData>;
|
|
98
|
+
decryptWithSymmetricKey: (encryptedData: EncryptedData, key: CryptoKey) => Promise<string>;
|
|
99
|
+
deriveKeyFromPassword: (password: string, salt?: ArrayBuffer) => Promise<{
|
|
100
|
+
key: CryptoKey;
|
|
101
|
+
salt: ArrayBuffer;
|
|
102
|
+
}>;
|
|
103
|
+
encryptFile: (fileContent: string | ArrayBuffer | File, password: string, fileName?: string) => Promise<EncryptedFilePackage>;
|
|
104
|
+
decryptFile: (encryptedPackage: EncryptedFilePackage, password: string) => Promise<DecryptedFileResult>;
|
|
105
|
+
encryptTextFile: (textContent: string, password: string, fileName?: string) => Promise<EncryptedFilePackage>;
|
|
106
|
+
decryptTextFile: (encryptedPackage: EncryptedFilePackage, password: string) => Promise<DecryptedFileResult & {
|
|
107
|
+
textContent: string;
|
|
108
|
+
}>;
|
|
109
|
+
encryptBinaryFile: (file: File, password: string) => Promise<EncryptedFilePackage>;
|
|
110
|
+
decryptBinaryFile: (encryptedPackage: EncryptedFilePackage, password: string) => Promise<DecryptedFileResult & {
|
|
111
|
+
blob: Blob;
|
|
112
|
+
}>;
|
|
113
|
+
createSecureFileDownload: (data: ArrayBuffer | string | Blob, fileName: string, mimeType?: string) => void;
|
|
114
|
+
parseEncryptedFilePackage: (file: File) => Promise<{
|
|
115
|
+
isValid: boolean;
|
|
116
|
+
package?: EncryptedFilePackage;
|
|
117
|
+
metadata?: any;
|
|
118
|
+
error?: string;
|
|
119
|
+
}>;
|
|
120
|
+
decryptUploadedFile: (encryptedFilePackage: File, password: string) => Promise<DecryptedFileResult>;
|
|
121
|
+
generateSignalKeyPair: () => Promise<CryptoKeyPair>;
|
|
122
|
+
generateSignalSigningKeyPair: () => Promise<CryptoKeyPair>;
|
|
123
|
+
exportSignalPublicKey: (publicKey: CryptoKey) => Promise<ArrayBuffer>;
|
|
124
|
+
importSignalPublicKey: (keyBytes: ArrayBuffer) => Promise<CryptoKey>;
|
|
125
|
+
importSignalSigningPublicKey: (keyBytes: ArrayBuffer) => Promise<CryptoKey>;
|
|
126
|
+
performSignalDH: (privateKey: CryptoKey, publicKey: CryptoKey) => Promise<ArrayBuffer>;
|
|
127
|
+
signSignalData: (privateKey: CryptoKey, data: ArrayBuffer) => Promise<ArrayBuffer>;
|
|
128
|
+
verifySignalSignature: (publicKey: CryptoKey, signature: ArrayBuffer, data: ArrayBuffer) => Promise<boolean>;
|
|
129
|
+
deriveSignalKey: (inputKeyMaterial: ArrayBuffer, salt: ArrayBuffer, info: ArrayBuffer, length?: number) => Promise<CryptoKey>;
|
|
130
|
+
concatSignalArrayBuffers: (...buffers: ArrayBuffer[]) => ArrayBuffer;
|
|
131
|
+
bufferToSignalHex: (buffer: ArrayBuffer) => string;
|
|
132
|
+
initializeSignalUser: (name: string) => Promise<SignalUser>;
|
|
133
|
+
getSignalPublicKeyBundle: (user: SignalUser) => Promise<SignalPublicKeyBundle>;
|
|
134
|
+
consumeSignalOneTimePrekey: (user: SignalUser) => CryptoKeyPair | undefined;
|
|
135
|
+
performSignalX3DHKeyExchange: (alice: SignalUser, bobBundle: SignalPublicKeyBundle) => Promise<X3DHExchangeResult>;
|
|
136
|
+
deriveSignalSharedSecret: (bob: SignalUser, aliceEphemeralPublic: ArrayBuffer, aliceIdentityPublic: ArrayBuffer, usedOneTimePrekey: boolean, oneTimePrekeyBytes?: ArrayBuffer | null) => Promise<ArrayBuffer>;
|
|
137
|
+
demonstrateSignalProtocol: () => Promise<any>;
|
|
138
|
+
initializeDoubleRatchet: (sharedSecret: ArrayBuffer, isInitiator: boolean, remotePublicKey?: CryptoKey | null) => Promise<DoubleRatchetState>;
|
|
139
|
+
doubleRatchetEncrypt: (state: DoubleRatchetState, plaintext: string) => Promise<MessageEnvelope>;
|
|
140
|
+
doubleRatchetDecrypt: (state: DoubleRatchetState, messageEnvelope: MessageEnvelope) => Promise<string>;
|
|
141
|
+
serializeDoubleRatchetState: (state: DoubleRatchetState) => Promise<string>;
|
|
142
|
+
demonstrateDoubleRatchet: () => Promise<any>;
|
|
143
|
+
cleanupSkippedMessageKeys: (state: DoubleRatchetState, maxAge?: number) => void;
|
|
144
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export declare const validatePassword: (password: string) => boolean;
|
|
2
|
+
export declare const generateSecurePassword: (length?: number) => string;
|
|
3
|
+
export declare const measurePerformance: <T>(operation: () => Promise<T>, operationName: string) => Promise<{
|
|
4
|
+
result: T;
|
|
5
|
+
duration: number;
|
|
6
|
+
}>;
|
|
7
|
+
export declare const formatBytes: (bytes: number) => string;
|
|
8
|
+
export declare const formatDuration: (ms: number) => string;
|
|
9
|
+
export declare const createProgressCallback: (onProgress: (progress: number) => void, total: number) => {
|
|
10
|
+
increment: (amount?: number) => void;
|
|
11
|
+
setProgress: (progress: number) => void;
|
|
12
|
+
complete: () => void;
|
|
13
|
+
};
|
|
14
|
+
export declare const sanitizeFileName: (fileName: string) => string;
|
|
15
|
+
export declare const getFileExtension: (fileName: string) => string;
|
|
16
|
+
export declare const isTextFile: (fileName: string) => boolean;
|
|
17
|
+
export declare const createFileHash: (file: File) => Promise<string>;
|
|
18
|
+
export declare const compareFiles: (file1: File, file2: File) => Promise<boolean>;
|
|
19
|
+
export declare const createBackup: (data: any) => string;
|
|
20
|
+
export declare const restoreBackup: (backupString: string) => any;
|
|
21
|
+
export declare const debounce: <T extends (...args: any[]) => any>(func: T, wait: number) => ((...args: Parameters<T>) => void);
|
|
22
|
+
export declare const throttle: <T extends (...args: any[]) => any>(func: T, limit: number) => ((...args: Parameters<T>) => void);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MLS Advanced Example
|
|
3
|
+
* Demonstrates advanced MLS features including:
|
|
4
|
+
* - Group creation and management
|
|
5
|
+
* - Member addition/removal
|
|
6
|
+
* - Key rotation and forward secrecy
|
|
7
|
+
* - Message encryption/decryption
|
|
8
|
+
* - Commit processing and synchronization
|
|
9
|
+
*/
|
|
10
|
+
declare class MLSGroupDemo {
|
|
11
|
+
private users;
|
|
12
|
+
private groupId;
|
|
13
|
+
private creator;
|
|
14
|
+
constructor(groupId: string, creatorId: string);
|
|
15
|
+
/**
|
|
16
|
+
* Add a user to the demo
|
|
17
|
+
*/
|
|
18
|
+
addUser(userId: string): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Create the group with the creator
|
|
21
|
+
*/
|
|
22
|
+
createGroup(): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Add members to the group
|
|
25
|
+
*/
|
|
26
|
+
addMembers(memberIds: string[]): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Send a message from one user to the group
|
|
29
|
+
*/
|
|
30
|
+
sendMessage(senderId: string, message: string): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Perform key rotation
|
|
33
|
+
*/
|
|
34
|
+
rotateKeys(initiatorId: string): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Remove members from the group
|
|
37
|
+
*/
|
|
38
|
+
removeMembers(memberIds: string[]): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* Get group information
|
|
41
|
+
*/
|
|
42
|
+
getGroupInfo(): Promise<any>;
|
|
43
|
+
/**
|
|
44
|
+
* Demonstrate codec functionality
|
|
45
|
+
*/
|
|
46
|
+
demonstrateCodec(): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Clean up resources
|
|
49
|
+
*/
|
|
50
|
+
cleanup(): Promise<void>;
|
|
51
|
+
}
|
|
52
|
+
declare function demonstrateMLSAdvanced(): Promise<void>;
|
|
53
|
+
export { MLSGroupDemo, demonstrateMLSAdvanced };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PGP Example - Simple and Immediate
|
|
3
|
+
* Demonstrates basic PGP functionality:
|
|
4
|
+
* - Key generation
|
|
5
|
+
* - Message encryption/decryption
|
|
6
|
+
* - Digital signing
|
|
7
|
+
* - Signature verification
|
|
8
|
+
*/
|
|
9
|
+
declare function simplePGPExample(): Promise<{
|
|
10
|
+
success: boolean;
|
|
11
|
+
messageDecrypted: boolean;
|
|
12
|
+
signatureValid: boolean;
|
|
13
|
+
error?: undefined;
|
|
14
|
+
} | {
|
|
15
|
+
success: boolean;
|
|
16
|
+
error: string;
|
|
17
|
+
messageDecrypted?: undefined;
|
|
18
|
+
signatureValid?: undefined;
|
|
19
|
+
}>;
|
|
20
|
+
declare function advancedPGPExample(): Promise<{
|
|
21
|
+
success: boolean;
|
|
22
|
+
groupMessaging: boolean;
|
|
23
|
+
keyManagement: boolean;
|
|
24
|
+
exportImport: boolean;
|
|
25
|
+
error?: undefined;
|
|
26
|
+
} | {
|
|
27
|
+
success: boolean;
|
|
28
|
+
error: string;
|
|
29
|
+
groupMessaging?: undefined;
|
|
30
|
+
keyManagement?: undefined;
|
|
31
|
+
exportImport?: undefined;
|
|
32
|
+
}>;
|
|
33
|
+
declare function runAllPGPExamples(): Promise<{
|
|
34
|
+
simple: {
|
|
35
|
+
success: boolean;
|
|
36
|
+
messageDecrypted: boolean;
|
|
37
|
+
signatureValid: boolean;
|
|
38
|
+
error?: undefined;
|
|
39
|
+
} | {
|
|
40
|
+
success: boolean;
|
|
41
|
+
error: string;
|
|
42
|
+
messageDecrypted?: undefined;
|
|
43
|
+
signatureValid?: undefined;
|
|
44
|
+
};
|
|
45
|
+
advanced: {
|
|
46
|
+
success: boolean;
|
|
47
|
+
groupMessaging: boolean;
|
|
48
|
+
keyManagement: boolean;
|
|
49
|
+
exportImport: boolean;
|
|
50
|
+
error?: undefined;
|
|
51
|
+
} | {
|
|
52
|
+
success: boolean;
|
|
53
|
+
error: string;
|
|
54
|
+
groupMessaging?: undefined;
|
|
55
|
+
keyManagement?: undefined;
|
|
56
|
+
exportImport?: undefined;
|
|
57
|
+
};
|
|
58
|
+
demo: {
|
|
59
|
+
success: boolean;
|
|
60
|
+
messageDecrypted: boolean;
|
|
61
|
+
signatureValid: boolean;
|
|
62
|
+
aliceKeyInfo: any;
|
|
63
|
+
bobKeyInfo: any;
|
|
64
|
+
demonstration: {
|
|
65
|
+
keyGeneration: boolean;
|
|
66
|
+
encryption: boolean;
|
|
67
|
+
decryption: boolean;
|
|
68
|
+
signing: boolean;
|
|
69
|
+
verification: boolean;
|
|
70
|
+
keyManagement: boolean;
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
allPassed: boolean;
|
|
74
|
+
}>;
|
|
75
|
+
export { simplePGPExample, advancedPGPExample, runAllPGPExamples };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Example showing how to use the simplified ShogunCore API
|
|
3
|
+
*
|
|
4
|
+
* The API has been streamlined:
|
|
5
|
+
* - AutoQuickStart: Quick initialization helper
|
|
6
|
+
* - api.database: Direct access to DataBase for basic operations (get, put, set, remove, auth)
|
|
7
|
+
* - api helper methods: High-level helpers for profile, settings, collections, and array utilities
|
|
8
|
+
*/
|
|
9
|
+
declare function simpleAPITest(): Promise<void>;
|
|
10
|
+
export { simpleAPITest };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ZK-Proof Verifiable Credentials Example
|
|
3
|
+
*
|
|
4
|
+
* This demonstrates how to use ZK-Proof for proving attributes
|
|
5
|
+
* about documents and identity without revealing sensitive data
|
|
6
|
+
*/
|
|
7
|
+
declare function ageVerificationExample(): Promise<void>;
|
|
8
|
+
declare function citizenshipExample(): Promise<void>;
|
|
9
|
+
declare function educationExample(): Promise<void>;
|
|
10
|
+
declare function incomeExample(): Promise<void>;
|
|
11
|
+
declare function customCredentialExample(): Promise<void>;
|
|
12
|
+
export { ageVerificationExample, citizenshipExample, educationExample, incomeExample, customCredentialExample, };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zero-Knowledge Proof Authentication Example
|
|
3
|
+
*
|
|
4
|
+
* This example demonstrates how to use the ZK-Proof plugin with Shogun Core
|
|
5
|
+
* for privacy-preserving authentication using Semaphore protocol.
|
|
6
|
+
*/
|
|
7
|
+
declare function basicExample(): Promise<void>;
|
|
8
|
+
declare function deterministicExample(): Promise<void>;
|
|
9
|
+
declare function proofExample(): Promise<void>;
|
|
10
|
+
declare function multiDeviceExample(): Promise<void>;
|
|
11
|
+
export { basicExample, deterministicExample, proofExample, multiDeviceExample };
|