shogun-core 6.2.4 → 6.3.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.
Files changed (233) hide show
  1. package/dist/browser/defaultVendors-node_modules_noble_curves_esm_ed448_js.shogun-core.js +93 -341
  2. package/dist/browser/defaultVendors-node_modules_noble_curves_esm_ed448_js.shogun-core.js.map +1 -1
  3. package/dist/browser/shogun-core.js +138979 -146789
  4. package/dist/browser/shogun-core.js.map +1 -1
  5. package/dist/{core.js → src/core.js} +167 -107
  6. package/dist/src/crypto/asymmetric.js +168 -0
  7. package/dist/src/crypto/double-ratchet.js +908 -0
  8. package/dist/src/crypto/file-encryption.js +352 -0
  9. package/dist/src/crypto/hashing.js +160 -0
  10. package/dist/src/crypto/index.js +18 -0
  11. package/dist/{crypto → src/crypto}/mls-codec.js +24 -34
  12. package/dist/src/crypto/mls.js +734 -0
  13. package/dist/src/crypto/pgp.js +619 -0
  14. package/dist/{crypto → src/crypto}/random-generation.js +125 -103
  15. package/dist/src/crypto/sframe.js +466 -0
  16. package/dist/src/crypto/signal-protocol.js +943 -0
  17. package/dist/src/crypto/symmetric.js +165 -0
  18. package/dist/src/crypto/utils.js +220 -0
  19. package/dist/src/examples/auth-test.js +535 -0
  20. package/dist/src/examples/crypto-identity-example.js +294 -0
  21. package/dist/src/examples/crypto-working-test.js +149 -0
  22. package/dist/src/examples/double-ratchet-test.js +240 -0
  23. package/dist/src/examples/mls-3-member-test.js +183 -0
  24. package/dist/src/examples/mls-multi-member.js +439 -0
  25. package/dist/src/examples/mls-sframe-test.js +491 -0
  26. package/dist/src/examples/mls-simple-test.js +122 -0
  27. package/dist/src/examples/pgp-example.js +354 -0
  28. package/dist/src/examples/random-generation-test.js +191 -0
  29. package/dist/src/examples/shogun-core-example.js +204 -0
  30. package/dist/src/examples/signal-protocol-test.js +82 -0
  31. package/dist/src/examples/zkproof-credentials-example.js +357 -0
  32. package/dist/src/examples/zkproof-example.js +357 -0
  33. package/dist/src/gundb/crypto.js +420 -0
  34. package/dist/src/gundb/db.js +728 -0
  35. package/dist/src/gundb/derive.js +327 -0
  36. package/dist/src/gundb/errors.js +115 -0
  37. package/dist/src/gundb/gun-es.js +8 -0
  38. package/dist/src/gundb/index.js +5 -0
  39. package/dist/{gundb → src/gundb}/rxjs.js +147 -111
  40. package/dist/{gundb → src/gundb}/types.js +1 -2
  41. package/dist/src/index.js +19 -0
  42. package/dist/src/interfaces/events.js +57 -0
  43. package/dist/{interfaces → src/interfaces}/shogun.js +4 -7
  44. package/dist/src/managers/AuthManager.js +301 -0
  45. package/dist/src/managers/CoreInitializer.js +304 -0
  46. package/dist/src/managers/CryptoIdentityManager.js +230 -0
  47. package/dist/{managers → src/managers}/EventManager.js +19 -21
  48. package/dist/{managers → src/managers}/PluginManager.js +123 -89
  49. package/dist/src/plugins/base.js +90 -0
  50. package/dist/src/plugins/index.js +17 -0
  51. package/dist/src/plugins/nostr/index.js +4 -0
  52. package/dist/src/plugins/nostr/nostrConnector.js +539 -0
  53. package/dist/src/plugins/nostr/nostrConnectorPlugin.js +663 -0
  54. package/dist/src/plugins/nostr/nostrSigner.js +414 -0
  55. package/dist/src/plugins/smartwallet/index.js +2 -0
  56. package/dist/src/plugins/smartwallet/smartWalletPlugin.js +824 -0
  57. package/dist/src/plugins/web3/index.js +4 -0
  58. package/dist/src/plugins/web3/types.js +1 -0
  59. package/dist/src/plugins/web3/web3Connector.js +738 -0
  60. package/dist/src/plugins/web3/web3ConnectorPlugin.js +639 -0
  61. package/dist/src/plugins/web3/web3Signer.js +432 -0
  62. package/dist/src/plugins/webauthn/index.js +3 -0
  63. package/dist/{plugins → src/plugins}/webauthn/types.js +2 -5
  64. package/dist/src/plugins/webauthn/webauthn.js +647 -0
  65. package/dist/src/plugins/webauthn/webauthnPlugin.js +689 -0
  66. package/dist/src/plugins/webauthn/webauthnSigner.js +419 -0
  67. package/dist/{plugins → src/plugins}/zkproof/index.js +3 -10
  68. package/dist/src/plugins/zkproof/types.js +1 -0
  69. package/dist/src/plugins/zkproof/zkCredentials.js +287 -0
  70. package/dist/src/plugins/zkproof/zkProofConnector.js +267 -0
  71. package/dist/src/plugins/zkproof/zkProofPlugin.js +405 -0
  72. package/dist/src/storage/storage.js +189 -0
  73. package/dist/src/utils/errorHandler.js +339 -0
  74. package/dist/{utils → src/utils}/eventEmitter.js +26 -26
  75. package/dist/{utils → src/utils}/seedPhrase.js +23 -32
  76. package/dist/{utils → src/utils}/validation.js +14 -21
  77. package/dist/tsconfig.tsbuildinfo +1 -0
  78. package/dist/types/{crypto → src/crypto}/double-ratchet.d.ts +1 -1
  79. package/dist/types/{crypto → src/crypto}/signal-protocol.d.ts +25 -0
  80. package/dist/types/{crypto → src/crypto}/types.d.ts +3 -1
  81. package/dist/types/src/examples/crypto-working-test.d.ts +1 -0
  82. package/dist/types/src/examples/double-ratchet-test.d.ts +1 -0
  83. package/dist/types/src/examples/mls-sframe-test.d.ts +1 -0
  84. package/dist/types/src/examples/random-generation-test.d.ts +1 -0
  85. package/dist/types/src/examples/signal-protocol-test.d.ts +1 -0
  86. package/dist/types/{gundb → src/gundb}/db.d.ts +14 -1
  87. package/dist/types/src/gundb/gun-es.d.ts +8 -0
  88. package/dist/types/src/gundb/min.d.ts +3 -0
  89. package/dist/types/{index.d.ts → src/index.d.ts} +1 -0
  90. package/package.json +14 -11
  91. package/dist/browser/defaultVendors-node_modules_noble_curves_esm_abstract_curve_js-node_modules_noble_curves_esm_-1ce4ed.shogun-core.js +0 -1651
  92. package/dist/browser/defaultVendors-node_modules_noble_curves_esm_abstract_curve_js-node_modules_noble_curves_esm_-1ce4ed.shogun-core.js.map +0 -1
  93. package/dist/browser/defaultVendors-node_modules_noble_curves_esm_nist_js.shogun-core.js +0 -1608
  94. package/dist/browser/defaultVendors-node_modules_noble_curves_esm_nist_js.shogun-core.js.map +0 -1
  95. package/dist/crypto/asymmetric.js +0 -99
  96. package/dist/crypto/double-ratchet.js +0 -392
  97. package/dist/crypto/file-encryption.js +0 -213
  98. package/dist/crypto/hashing.js +0 -87
  99. package/dist/crypto/index.js +0 -34
  100. package/dist/crypto/mls.js +0 -569
  101. package/dist/crypto/pgp.js +0 -390
  102. package/dist/crypto/sframe.js +0 -352
  103. package/dist/crypto/signal-protocol.js +0 -456
  104. package/dist/crypto/symmetric.js +0 -91
  105. package/dist/crypto/types.js +0 -2
  106. package/dist/crypto/utils.js +0 -140
  107. package/dist/examples/auth-test.js +0 -453
  108. package/dist/examples/crypto-identity-example.js +0 -196
  109. package/dist/examples/crypto-working-test.js +0 -83
  110. package/dist/examples/double-ratchet-test.js +0 -155
  111. package/dist/examples/mls-3-member-test.js +0 -97
  112. package/dist/examples/mls-multi-member.js +0 -153
  113. package/dist/examples/mls-sframe-test.js +0 -307
  114. package/dist/examples/mls-simple-test.js +0 -58
  115. package/dist/examples/pgp-example.js +0 -200
  116. package/dist/examples/random-generation-test.js +0 -151
  117. package/dist/examples/shogun-core-example.js +0 -150
  118. package/dist/examples/signal-protocol-test.js +0 -38
  119. package/dist/examples/zkproof-credentials-example.js +0 -217
  120. package/dist/examples/zkproof-example.js +0 -242
  121. package/dist/gundb/crypto.js +0 -306
  122. package/dist/gundb/db.js +0 -485
  123. package/dist/gundb/derive.js +0 -232
  124. package/dist/gundb/errors.js +0 -76
  125. package/dist/gundb/gun-es.js +0 -12
  126. package/dist/gundb/index.js +0 -21
  127. package/dist/gundb/min.js +0 -10
  128. package/dist/index.esm.js +0 -22
  129. package/dist/index.js +0 -47
  130. package/dist/interfaces/common.js +0 -2
  131. package/dist/interfaces/events.js +0 -40
  132. package/dist/interfaces/plugin.js +0 -2
  133. package/dist/managers/AuthManager.js +0 -226
  134. package/dist/managers/CoreInitializer.js +0 -250
  135. package/dist/managers/CryptoIdentityManager.js +0 -138
  136. package/dist/plugins/base.js +0 -50
  137. package/dist/plugins/index.js +0 -32
  138. package/dist/plugins/nostr/index.js +0 -20
  139. package/dist/plugins/nostr/nostrConnector.js +0 -419
  140. package/dist/plugins/nostr/nostrConnectorPlugin.js +0 -453
  141. package/dist/plugins/nostr/nostrSigner.js +0 -319
  142. package/dist/plugins/nostr/types.js +0 -2
  143. package/dist/plugins/smartwallet/index.js +0 -18
  144. package/dist/plugins/smartwallet/smartWalletPlugin.js +0 -511
  145. package/dist/plugins/smartwallet/types.js +0 -2
  146. package/dist/plugins/web3/index.js +0 -20
  147. package/dist/plugins/web3/types.js +0 -2
  148. package/dist/plugins/web3/web3Connector.js +0 -533
  149. package/dist/plugins/web3/web3ConnectorPlugin.js +0 -455
  150. package/dist/plugins/web3/web3Signer.js +0 -314
  151. package/dist/plugins/webauthn/index.js +0 -19
  152. package/dist/plugins/webauthn/webauthn.js +0 -496
  153. package/dist/plugins/webauthn/webauthnPlugin.js +0 -490
  154. package/dist/plugins/webauthn/webauthnSigner.js +0 -310
  155. package/dist/plugins/zkproof/types.js +0 -2
  156. package/dist/plugins/zkproof/zkCredentials.js +0 -216
  157. package/dist/plugins/zkproof/zkProofConnector.js +0 -198
  158. package/dist/plugins/zkproof/zkProofPlugin.js +0 -272
  159. package/dist/storage/storage.js +0 -145
  160. package/dist/types/gundb/gun-es.d.ts +0 -8
  161. package/dist/utils/errorHandler.js +0 -246
  162. /package/dist/{types/examples/crypto-working-test.d.ts → src/crypto/types.js} +0 -0
  163. /package/dist/{types/gundb/min.d.ts → src/gundb/min.js} +0 -0
  164. /package/dist/{types/examples/double-ratchet-test.d.ts → src/interfaces/common.js} +0 -0
  165. /package/dist/{types/examples/mls-sframe-test.d.ts → src/interfaces/plugin.js} +0 -0
  166. /package/dist/{types/examples/random-generation-test.d.ts → src/plugins/nostr/types.js} +0 -0
  167. /package/dist/{types/examples/signal-protocol-test.d.ts → src/plugins/smartwallet/types.js} +0 -0
  168. /package/dist/types/{core.d.ts → src/core.d.ts} +0 -0
  169. /package/dist/types/{crypto → src/crypto}/asymmetric.d.ts +0 -0
  170. /package/dist/types/{crypto → src/crypto}/file-encryption.d.ts +0 -0
  171. /package/dist/types/{crypto → src/crypto}/hashing.d.ts +0 -0
  172. /package/dist/types/{crypto → src/crypto}/index.d.ts +0 -0
  173. /package/dist/types/{crypto → src/crypto}/mls-codec.d.ts +0 -0
  174. /package/dist/types/{crypto → src/crypto}/mls.d.ts +0 -0
  175. /package/dist/types/{crypto → src/crypto}/pgp.d.ts +0 -0
  176. /package/dist/types/{crypto → src/crypto}/random-generation.d.ts +0 -0
  177. /package/dist/types/{crypto → src/crypto}/sframe.d.ts +0 -0
  178. /package/dist/types/{crypto → src/crypto}/symmetric.d.ts +0 -0
  179. /package/dist/types/{crypto → src/crypto}/utils.d.ts +0 -0
  180. /package/dist/types/{examples → src/examples}/auth-test.d.ts +0 -0
  181. /package/dist/types/{examples → src/examples}/crypto-identity-example.d.ts +0 -0
  182. /package/dist/types/{examples → src/examples}/mls-3-member-test.d.ts +0 -0
  183. /package/dist/types/{examples → src/examples}/mls-multi-member.d.ts +0 -0
  184. /package/dist/types/{examples → src/examples}/mls-simple-test.d.ts +0 -0
  185. /package/dist/types/{examples → src/examples}/pgp-example.d.ts +0 -0
  186. /package/dist/types/{examples → src/examples}/shogun-core-example.d.ts +0 -0
  187. /package/dist/types/{examples → src/examples}/zkproof-credentials-example.d.ts +0 -0
  188. /package/dist/types/{examples → src/examples}/zkproof-example.d.ts +0 -0
  189. /package/dist/types/{gundb → src/gundb}/crypto.d.ts +0 -0
  190. /package/dist/types/{gundb → src/gundb}/derive.d.ts +0 -0
  191. /package/dist/types/{gundb → src/gundb}/errors.d.ts +0 -0
  192. /package/dist/types/{gundb → src/gundb}/index.d.ts +0 -0
  193. /package/dist/types/{gundb → src/gundb}/rxjs.d.ts +0 -0
  194. /package/dist/types/{gundb → src/gundb}/types.d.ts +0 -0
  195. /package/dist/types/{interfaces → src/interfaces}/common.d.ts +0 -0
  196. /package/dist/types/{interfaces → src/interfaces}/events.d.ts +0 -0
  197. /package/dist/types/{interfaces → src/interfaces}/plugin.d.ts +0 -0
  198. /package/dist/types/{interfaces → src/interfaces}/shogun.d.ts +0 -0
  199. /package/dist/types/{managers → src/managers}/AuthManager.d.ts +0 -0
  200. /package/dist/types/{managers → src/managers}/CoreInitializer.d.ts +0 -0
  201. /package/dist/types/{managers → src/managers}/CryptoIdentityManager.d.ts +0 -0
  202. /package/dist/types/{managers → src/managers}/EventManager.d.ts +0 -0
  203. /package/dist/types/{managers → src/managers}/PluginManager.d.ts +0 -0
  204. /package/dist/types/{plugins → src/plugins}/base.d.ts +0 -0
  205. /package/dist/types/{plugins → src/plugins}/index.d.ts +0 -0
  206. /package/dist/types/{plugins → src/plugins}/nostr/index.d.ts +0 -0
  207. /package/dist/types/{plugins → src/plugins}/nostr/nostrConnector.d.ts +0 -0
  208. /package/dist/types/{plugins → src/plugins}/nostr/nostrConnectorPlugin.d.ts +0 -0
  209. /package/dist/types/{plugins → src/plugins}/nostr/nostrSigner.d.ts +0 -0
  210. /package/dist/types/{plugins → src/plugins}/nostr/types.d.ts +0 -0
  211. /package/dist/types/{plugins → src/plugins}/smartwallet/index.d.ts +0 -0
  212. /package/dist/types/{plugins → src/plugins}/smartwallet/smartWalletPlugin.d.ts +0 -0
  213. /package/dist/types/{plugins → src/plugins}/smartwallet/types.d.ts +0 -0
  214. /package/dist/types/{plugins → src/plugins}/web3/index.d.ts +0 -0
  215. /package/dist/types/{plugins → src/plugins}/web3/types.d.ts +0 -0
  216. /package/dist/types/{plugins → src/plugins}/web3/web3Connector.d.ts +0 -0
  217. /package/dist/types/{plugins → src/plugins}/web3/web3ConnectorPlugin.d.ts +0 -0
  218. /package/dist/types/{plugins → src/plugins}/web3/web3Signer.d.ts +0 -0
  219. /package/dist/types/{plugins → src/plugins}/webauthn/index.d.ts +0 -0
  220. /package/dist/types/{plugins → src/plugins}/webauthn/types.d.ts +0 -0
  221. /package/dist/types/{plugins → src/plugins}/webauthn/webauthn.d.ts +0 -0
  222. /package/dist/types/{plugins → src/plugins}/webauthn/webauthnPlugin.d.ts +0 -0
  223. /package/dist/types/{plugins → src/plugins}/webauthn/webauthnSigner.d.ts +0 -0
  224. /package/dist/types/{plugins → src/plugins}/zkproof/index.d.ts +0 -0
  225. /package/dist/types/{plugins → src/plugins}/zkproof/types.d.ts +0 -0
  226. /package/dist/types/{plugins → src/plugins}/zkproof/zkCredentials.d.ts +0 -0
  227. /package/dist/types/{plugins → src/plugins}/zkproof/zkProofConnector.d.ts +0 -0
  228. /package/dist/types/{plugins → src/plugins}/zkproof/zkProofPlugin.d.ts +0 -0
  229. /package/dist/types/{storage → src/storage}/storage.d.ts +0 -0
  230. /package/dist/types/{utils → src/utils}/errorHandler.d.ts +0 -0
  231. /package/dist/types/{utils → src/utils}/eventEmitter.d.ts +0 -0
  232. /package/dist/types/{utils → src/utils}/seedPhrase.d.ts +0 -0
  233. /package/dist/types/{utils → src/utils}/validation.d.ts +0 -0
@@ -0,0 +1,619 @@
1
+ /**
2
+ * PGP/OpenPGP Implementation
3
+ * Simple and immediate PGP functionality using openpgp library
4
+ * Provides encryption, decryption, signing, and key management
5
+ */
6
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
7
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
8
+ return new (P || (P = Promise))(function (resolve, reject) {
9
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
10
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
11
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
12
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
13
+ });
14
+ };
15
+ var __generator = (this && this.__generator) || function (thisArg, body) {
16
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
17
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
18
+ function verb(n) { return function (v) { return step([n, v]); }; }
19
+ function step(op) {
20
+ if (f) throw new TypeError("Generator is already executing.");
21
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
22
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
23
+ if (y = 0, t) op = [op[0] & 2, t.value];
24
+ switch (op[0]) {
25
+ case 0: case 1: t = op; break;
26
+ case 4: _.label++; return { value: op[1], done: false };
27
+ case 5: _.label++; y = op[1]; op = [0]; continue;
28
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
29
+ default:
30
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
31
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
32
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
33
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
34
+ if (t[2]) _.ops.pop();
35
+ _.trys.pop(); continue;
36
+ }
37
+ op = body.call(thisArg, _);
38
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
39
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
40
+ }
41
+ };
42
+ var PGPManager = /** @class */ (function () {
43
+ function PGPManager() {
44
+ this.openpgp = null;
45
+ this.initialized = false;
46
+ console.log("🔐 [PGP] Manager created");
47
+ }
48
+ /**
49
+ * Initialize PGP manager with openpgp library
50
+ */
51
+ PGPManager.prototype.initialize = function () {
52
+ return __awaiter(this, void 0, void 0, function () {
53
+ var _a, error_1;
54
+ return __generator(this, function (_b) {
55
+ switch (_b.label) {
56
+ case 0:
57
+ if (this.initialized) {
58
+ console.warn("[PGP] Already initialized");
59
+ return [2 /*return*/];
60
+ }
61
+ _b.label = 1;
62
+ case 1:
63
+ _b.trys.push([1, 3, , 4]);
64
+ console.log("🔐 [PGP] Initializing...");
65
+ // Dynamic import of openpgp
66
+ _a = this;
67
+ return [4 /*yield*/, import("openpgp")];
68
+ case 2:
69
+ // Dynamic import of openpgp
70
+ _a.openpgp = _b.sent();
71
+ // Configure openpgp
72
+ this.openpgp.config.preferredHashAlgorithm =
73
+ this.openpgp.enums.hash.sha256;
74
+ this.openpgp.config.preferredSymmetricAlgorithm =
75
+ this.openpgp.enums.symmetric.aes256;
76
+ this.openpgp.config.preferredCompressionAlgorithm =
77
+ this.openpgp.enums.compression.zlib;
78
+ this.initialized = true;
79
+ console.log("✅ [PGP] Initialized successfully");
80
+ return [3 /*break*/, 4];
81
+ case 3:
82
+ error_1 = _b.sent();
83
+ console.error("❌ [PGP] Initialization failed:", error_1);
84
+ throw new Error("PGP initialization failed: ".concat(error_1 instanceof Error ? error_1.message : String(error_1)));
85
+ case 4: return [2 /*return*/];
86
+ }
87
+ });
88
+ });
89
+ };
90
+ /**
91
+ * Generate a new PGP key pair
92
+ */
93
+ PGPManager.prototype.generateKeyPair = function (name, email, passphrase) {
94
+ return __awaiter(this, void 0, void 0, function () {
95
+ var keyOptions, _a, privateKey, publicKey, privateKeyObj, keyId, fingerprint, keyPair, error_2;
96
+ return __generator(this, function (_b) {
97
+ switch (_b.label) {
98
+ case 0:
99
+ this.ensureInitialized();
100
+ _b.label = 1;
101
+ case 1:
102
+ _b.trys.push([1, 4, , 5]);
103
+ console.log("\uD83D\uDD11 [PGP] Generating key pair for ".concat(name, " <").concat(email, ">"));
104
+ keyOptions = {
105
+ type: "rsa",
106
+ rsaBits: 4096,
107
+ userIDs: [{ name: name, email: email }],
108
+ passphrase: passphrase || undefined,
109
+ format: "armored",
110
+ };
111
+ return [4 /*yield*/, this.openpgp.generateKey(keyOptions)];
112
+ case 2:
113
+ _a = _b.sent(), privateKey = _a.privateKey, publicKey = _a.publicKey;
114
+ return [4 /*yield*/, this.openpgp.readPrivateKey({
115
+ armoredKey: privateKey,
116
+ })];
117
+ case 3:
118
+ privateKeyObj = _b.sent();
119
+ keyId = privateKeyObj.getKeyID().toHex();
120
+ fingerprint = privateKeyObj.getFingerprint();
121
+ keyPair = {
122
+ publicKey: publicKey,
123
+ privateKey: privateKey,
124
+ keyId: keyId,
125
+ fingerprint: fingerprint,
126
+ created: new Date(),
127
+ };
128
+ console.log("\u2705 [PGP] Key pair generated: ".concat(keyId));
129
+ return [2 /*return*/, keyPair];
130
+ case 4:
131
+ error_2 = _b.sent();
132
+ console.error("❌ [PGP] Key generation failed:", error_2);
133
+ throw new Error("PGP key generation failed: ".concat(error_2 instanceof Error ? error_2.message : String(error_2)));
134
+ case 5: return [2 /*return*/];
135
+ }
136
+ });
137
+ });
138
+ };
139
+ /**
140
+ * Encrypt a message with public key
141
+ */
142
+ PGPManager.prototype.encryptMessage = function (message, publicKeyArmored, privateKeyArmored, passphrase) {
143
+ return __awaiter(this, void 0, void 0, function () {
144
+ var publicKey, messageObj, encryptOptions, privateKey, encrypted, result, error_3;
145
+ return __generator(this, function (_a) {
146
+ switch (_a.label) {
147
+ case 0:
148
+ this.ensureInitialized();
149
+ _a.label = 1;
150
+ case 1:
151
+ _a.trys.push([1, 7, , 8]);
152
+ console.log("🔒 [PGP] Encrypting message");
153
+ return [4 /*yield*/, this.openpgp.readKey({
154
+ armoredKey: publicKeyArmored,
155
+ })];
156
+ case 2:
157
+ publicKey = _a.sent();
158
+ return [4 /*yield*/, this.openpgp.createMessage({ text: message })];
159
+ case 3:
160
+ messageObj = _a.sent();
161
+ encryptOptions = {
162
+ message: messageObj,
163
+ encryptionKeys: publicKey,
164
+ format: "armored",
165
+ };
166
+ if (!privateKeyArmored) return [3 /*break*/, 5];
167
+ return [4 /*yield*/, this.openpgp.readPrivateKey({
168
+ armoredKey: privateKeyArmored,
169
+ })];
170
+ case 4:
171
+ privateKey = _a.sent();
172
+ if (passphrase) {
173
+ // In OpenPGP v6, private keys are automatically decrypted when needed
174
+ // No need to call decrypt explicitly
175
+ }
176
+ encryptOptions.signingKeys = privateKey;
177
+ _a.label = 5;
178
+ case 5: return [4 /*yield*/, this.openpgp.encrypt(encryptOptions)];
179
+ case 6:
180
+ encrypted = _a.sent();
181
+ result = {
182
+ message: encrypted,
183
+ encrypted: true,
184
+ signed: !!privateKeyArmored,
185
+ };
186
+ console.log("✅ [PGP] Message encrypted");
187
+ return [2 /*return*/, result];
188
+ case 7:
189
+ error_3 = _a.sent();
190
+ console.error("❌ [PGP] Encryption failed:", error_3);
191
+ throw new Error("PGP encryption failed: ".concat(error_3 instanceof Error ? error_3.message : String(error_3)));
192
+ case 8: return [2 /*return*/];
193
+ }
194
+ });
195
+ });
196
+ };
197
+ /**
198
+ * Decrypt a message with private key
199
+ */
200
+ PGPManager.prototype.decryptMessage = function (encryptedMessage, privateKeyArmored, passphrase) {
201
+ return __awaiter(this, void 0, void 0, function () {
202
+ var privateKey, message, decrypted, error_4;
203
+ return __generator(this, function (_a) {
204
+ switch (_a.label) {
205
+ case 0:
206
+ this.ensureInitialized();
207
+ _a.label = 1;
208
+ case 1:
209
+ _a.trys.push([1, 5, , 6]);
210
+ console.log("🔓 [PGP] Decrypting message");
211
+ return [4 /*yield*/, this.openpgp.readPrivateKey({
212
+ armoredKey: privateKeyArmored,
213
+ })];
214
+ case 2:
215
+ privateKey = _a.sent();
216
+ if (passphrase) {
217
+ // In OpenPGP v6, private keys are automatically decrypted when needed
218
+ // No need to call decrypt explicitly
219
+ }
220
+ return [4 /*yield*/, this.openpgp.readMessage({
221
+ armoredMessage: encryptedMessage,
222
+ })];
223
+ case 3:
224
+ message = _a.sent();
225
+ return [4 /*yield*/, this.openpgp.decrypt({
226
+ message: message,
227
+ decryptionKeys: privateKey,
228
+ format: "text",
229
+ })];
230
+ case 4:
231
+ decrypted = (_a.sent()).data;
232
+ console.log("✅ [PGP] Message decrypted");
233
+ return [2 /*return*/, decrypted];
234
+ case 5:
235
+ error_4 = _a.sent();
236
+ console.error("❌ [PGP] Decryption failed:", error_4);
237
+ throw new Error("PGP decryption failed: ".concat(error_4 instanceof Error ? error_4.message : String(error_4)));
238
+ case 6: return [2 /*return*/];
239
+ }
240
+ });
241
+ });
242
+ };
243
+ /**
244
+ * Sign a message with private key
245
+ */
246
+ PGPManager.prototype.signMessage = function (message, privateKeyArmored, passphrase) {
247
+ return __awaiter(this, void 0, void 0, function () {
248
+ var privateKey, messageObj, signature, result, error_5;
249
+ return __generator(this, function (_a) {
250
+ switch (_a.label) {
251
+ case 0:
252
+ this.ensureInitialized();
253
+ _a.label = 1;
254
+ case 1:
255
+ _a.trys.push([1, 5, , 6]);
256
+ console.log("✍️ [PGP] Signing message");
257
+ return [4 /*yield*/, this.openpgp.readPrivateKey({
258
+ armoredKey: privateKeyArmored,
259
+ })];
260
+ case 2:
261
+ privateKey = _a.sent();
262
+ if (passphrase) {
263
+ // In OpenPGP v6, private keys are automatically decrypted when needed
264
+ // No need to call decrypt explicitly
265
+ }
266
+ return [4 /*yield*/, this.openpgp.createMessage({ text: message })];
267
+ case 3:
268
+ messageObj = _a.sent();
269
+ return [4 /*yield*/, this.openpgp.sign({
270
+ message: messageObj,
271
+ signingKeys: privateKey,
272
+ format: "armored",
273
+ })];
274
+ case 4:
275
+ signature = _a.sent();
276
+ result = {
277
+ message: message,
278
+ signature: signature,
279
+ valid: true,
280
+ keyId: privateKey.getKeyID().toHex(),
281
+ };
282
+ console.log("✅ [PGP] Message signed");
283
+ return [2 /*return*/, result];
284
+ case 5:
285
+ error_5 = _a.sent();
286
+ console.error("❌ [PGP] Signing failed:", error_5);
287
+ throw new Error("PGP signing failed: ".concat(error_5 instanceof Error ? error_5.message : String(error_5)));
288
+ case 6: return [2 /*return*/];
289
+ }
290
+ });
291
+ });
292
+ };
293
+ /**
294
+ * Verify a message signature
295
+ */
296
+ PGPManager.prototype.verifySignature = function (message, signature, publicKeyArmored) {
297
+ return __awaiter(this, void 0, void 0, function () {
298
+ var publicKey, messageObj, signatureObj, verificationResult, verified, result, error_6;
299
+ return __generator(this, function (_a) {
300
+ switch (_a.label) {
301
+ case 0:
302
+ this.ensureInitialized();
303
+ _a.label = 1;
304
+ case 1:
305
+ _a.trys.push([1, 7, , 8]);
306
+ console.log("🔍 [PGP] Verifying signature");
307
+ return [4 /*yield*/, this.openpgp.readKey({
308
+ armoredKey: publicKeyArmored,
309
+ })];
310
+ case 2:
311
+ publicKey = _a.sent();
312
+ return [4 /*yield*/, this.openpgp.createMessage({ text: message })];
313
+ case 3:
314
+ messageObj = _a.sent();
315
+ return [4 /*yield*/, this.openpgp.readSignature({
316
+ armoredSignature: signature,
317
+ })];
318
+ case 4:
319
+ signatureObj = _a.sent();
320
+ return [4 /*yield*/, this.openpgp.verify({
321
+ message: messageObj,
322
+ signature: signatureObj,
323
+ verificationKeys: publicKey,
324
+ })];
325
+ case 5:
326
+ verificationResult = _a.sent();
327
+ verified = verificationResult.verified;
328
+ return [4 /*yield*/, verified];
329
+ case 6:
330
+ _a.sent();
331
+ result = {
332
+ message: message,
333
+ signature: signature,
334
+ valid: true,
335
+ keyId: publicKey.getKeyID().toHex(),
336
+ };
337
+ console.log("✅ [PGP] Signature verified");
338
+ return [2 /*return*/, result];
339
+ case 7:
340
+ error_6 = _a.sent();
341
+ console.error("❌ [PGP] Signature verification failed:", error_6);
342
+ return [2 /*return*/, {
343
+ message: message,
344
+ signature: signature,
345
+ valid: false,
346
+ }];
347
+ case 8: return [2 /*return*/];
348
+ }
349
+ });
350
+ });
351
+ };
352
+ /**
353
+ * Get key information from armored key
354
+ */
355
+ PGPManager.prototype.getKeyInfo = function (keyArmored) {
356
+ return __awaiter(this, void 0, void 0, function () {
357
+ var key, error_7;
358
+ return __generator(this, function (_a) {
359
+ switch (_a.label) {
360
+ case 0:
361
+ this.ensureInitialized();
362
+ _a.label = 1;
363
+ case 1:
364
+ _a.trys.push([1, 3, , 4]);
365
+ console.log("🔍 [PGP] Getting key information");
366
+ return [4 /*yield*/, this.openpgp.readKey({ armoredKey: keyArmored })];
367
+ case 2:
368
+ key = _a.sent();
369
+ return [2 /*return*/, {
370
+ keyId: key.getKeyID().toHex(),
371
+ fingerprint: key.getFingerprint(),
372
+ algorithm: key.getAlgorithmInfo(),
373
+ created: key.getCreationTime(),
374
+ expires: key.getExpirationTime(),
375
+ isPrivate: key.isPrivate(),
376
+ isPublic: key.isPublic(),
377
+ }];
378
+ case 3:
379
+ error_7 = _a.sent();
380
+ console.error("❌ [PGP] Failed to get key info:", error_7);
381
+ throw new Error("PGP key info failed: ".concat(error_7 instanceof Error ? error_7.message : String(error_7)));
382
+ case 4: return [2 /*return*/];
383
+ }
384
+ });
385
+ });
386
+ };
387
+ /**
388
+ * Export key in different formats
389
+ */
390
+ PGPManager.prototype.exportKey = function (keyArmored_1) {
391
+ return __awaiter(this, arguments, void 0, function (keyArmored, format) {
392
+ var key, error_8;
393
+ if (format === void 0) { format = "armored"; }
394
+ return __generator(this, function (_a) {
395
+ switch (_a.label) {
396
+ case 0:
397
+ this.ensureInitialized();
398
+ _a.label = 1;
399
+ case 1:
400
+ _a.trys.push([1, 3, , 4]);
401
+ console.log("\uD83D\uDCE4 [PGP] Exporting key in ".concat(format, " format"));
402
+ return [4 /*yield*/, this.openpgp.readKey({ armoredKey: keyArmored })];
403
+ case 2:
404
+ key = _a.sent();
405
+ if (format === "binary") {
406
+ return [2 /*return*/, key.toBytes()];
407
+ }
408
+ else {
409
+ return [2 /*return*/, key.armor()];
410
+ }
411
+ return [3 /*break*/, 4];
412
+ case 3:
413
+ error_8 = _a.sent();
414
+ console.error("❌ [PGP] Key export failed:", error_8);
415
+ throw new Error("PGP key export failed: ".concat(error_8 instanceof Error ? error_8.message : String(error_8)));
416
+ case 4: return [2 /*return*/];
417
+ }
418
+ });
419
+ });
420
+ };
421
+ /**
422
+ * Import key from different formats
423
+ */
424
+ PGPManager.prototype.importKey = function (keyData_1) {
425
+ return __awaiter(this, arguments, void 0, function (keyData, format) {
426
+ var key, error_9;
427
+ if (format === void 0) { format = "armored"; }
428
+ return __generator(this, function (_a) {
429
+ switch (_a.label) {
430
+ case 0:
431
+ this.ensureInitialized();
432
+ _a.label = 1;
433
+ case 1:
434
+ _a.trys.push([1, 6, , 7]);
435
+ console.log("\uD83D\uDCE5 [PGP] Importing key in ".concat(format, " format"));
436
+ key = void 0;
437
+ if (!(format === "binary")) return [3 /*break*/, 3];
438
+ return [4 /*yield*/, this.openpgp.readKey({ binaryKey: keyData })];
439
+ case 2:
440
+ key = _a.sent();
441
+ return [3 /*break*/, 5];
442
+ case 3: return [4 /*yield*/, this.openpgp.readKey({ armoredKey: keyData })];
443
+ case 4:
444
+ key = _a.sent();
445
+ _a.label = 5;
446
+ case 5: return [2 /*return*/, key.armor()];
447
+ case 6:
448
+ error_9 = _a.sent();
449
+ console.error("❌ [PGP] Key import failed:", error_9);
450
+ throw new Error("PGP key import failed: ".concat(error_9 instanceof Error ? error_9.message : String(error_9)));
451
+ case 7: return [2 /*return*/];
452
+ }
453
+ });
454
+ });
455
+ };
456
+ /**
457
+ * Clean up resources
458
+ */
459
+ PGPManager.prototype.destroy = function () {
460
+ this.openpgp = null;
461
+ this.initialized = false;
462
+ console.log("✅ [PGP] Manager destroyed");
463
+ };
464
+ /**
465
+ * Ensure the manager is initialized
466
+ */
467
+ PGPManager.prototype.ensureInitialized = function () {
468
+ if (!this.initialized) {
469
+ throw new Error("PGP Manager not initialized. Call initialize() first.");
470
+ }
471
+ };
472
+ return PGPManager;
473
+ }());
474
+ export { PGPManager };
475
+ // Factory function for creating PGP managers
476
+ export var createPGPManager = function () { return __awaiter(void 0, void 0, void 0, function () {
477
+ var manager;
478
+ return __generator(this, function (_a) {
479
+ switch (_a.label) {
480
+ case 0:
481
+ manager = new PGPManager();
482
+ return [4 /*yield*/, manager.initialize()];
483
+ case 1:
484
+ _a.sent();
485
+ return [2 /*return*/, manager];
486
+ }
487
+ });
488
+ }); };
489
+ // Utility functions for PGP
490
+ export var generatePGPKeyPair = function (name, email, passphrase) { return __awaiter(void 0, void 0, void 0, function () {
491
+ var manager;
492
+ return __generator(this, function (_a) {
493
+ switch (_a.label) {
494
+ case 0: return [4 /*yield*/, createPGPManager()];
495
+ case 1:
496
+ manager = _a.sent();
497
+ return [4 /*yield*/, manager.generateKeyPair(name, email, passphrase)];
498
+ case 2: return [2 /*return*/, _a.sent()];
499
+ }
500
+ });
501
+ }); };
502
+ export var encryptPGPMessage = function (message, publicKey, privateKey, passphrase) { return __awaiter(void 0, void 0, void 0, function () {
503
+ var manager;
504
+ return __generator(this, function (_a) {
505
+ switch (_a.label) {
506
+ case 0: return [4 /*yield*/, createPGPManager()];
507
+ case 1:
508
+ manager = _a.sent();
509
+ return [4 /*yield*/, manager.encryptMessage(message, publicKey, privateKey, passphrase)];
510
+ case 2: return [2 /*return*/, _a.sent()];
511
+ }
512
+ });
513
+ }); };
514
+ export var decryptPGPMessage = function (encryptedMessage, privateKey, passphrase) { return __awaiter(void 0, void 0, void 0, function () {
515
+ var manager;
516
+ return __generator(this, function (_a) {
517
+ switch (_a.label) {
518
+ case 0: return [4 /*yield*/, createPGPManager()];
519
+ case 1:
520
+ manager = _a.sent();
521
+ return [4 /*yield*/, manager.decryptMessage(encryptedMessage, privateKey, passphrase)];
522
+ case 2: return [2 /*return*/, _a.sent()];
523
+ }
524
+ });
525
+ }); };
526
+ export var signPGPMessage = function (message, privateKey, passphrase) { return __awaiter(void 0, void 0, void 0, function () {
527
+ var manager;
528
+ return __generator(this, function (_a) {
529
+ switch (_a.label) {
530
+ case 0: return [4 /*yield*/, createPGPManager()];
531
+ case 1:
532
+ manager = _a.sent();
533
+ return [4 /*yield*/, manager.signMessage(message, privateKey, passphrase)];
534
+ case 2: return [2 /*return*/, _a.sent()];
535
+ }
536
+ });
537
+ }); };
538
+ export var verifyPGPSignature = function (message, signature, publicKey) { return __awaiter(void 0, void 0, void 0, function () {
539
+ var manager;
540
+ return __generator(this, function (_a) {
541
+ switch (_a.label) {
542
+ case 0: return [4 /*yield*/, createPGPManager()];
543
+ case 1:
544
+ manager = _a.sent();
545
+ return [4 /*yield*/, manager.verifySignature(message, signature, publicKey)];
546
+ case 2: return [2 /*return*/, _a.sent()];
547
+ }
548
+ });
549
+ }); };
550
+ // Demonstrate PGP functionality
551
+ export var demonstratePGP = function () { return __awaiter(void 0, void 0, void 0, function () {
552
+ var manager, aliceKeys, bobKeys, message, encrypted, decrypted, signedMessage, signature, verification, aliceKeyInfo, bobKeyInfo, result, error_10;
553
+ return __generator(this, function (_a) {
554
+ switch (_a.label) {
555
+ case 0:
556
+ _a.trys.push([0, 10, , 11]);
557
+ console.log("🚀 Starting PGP demonstration...");
558
+ return [4 /*yield*/, createPGPManager()];
559
+ case 1:
560
+ manager = _a.sent();
561
+ console.log("✅ PGP manager created");
562
+ return [4 /*yield*/, manager.generateKeyPair("Alice", "alice@example.com", "alice123")];
563
+ case 2:
564
+ aliceKeys = _a.sent();
565
+ return [4 /*yield*/, manager.generateKeyPair("Bob", "bob@example.com", "bob123")];
566
+ case 3:
567
+ bobKeys = _a.sent();
568
+ console.log("✅ Key pairs generated");
569
+ message = "Hello Bob! This is a secret message. 🔐";
570
+ return [4 /*yield*/, manager.encryptMessage(message, bobKeys.publicKey)];
571
+ case 4:
572
+ encrypted = _a.sent();
573
+ console.log("✅ Message encrypted");
574
+ return [4 /*yield*/, manager.decryptMessage(encrypted.message, bobKeys.privateKey, "bob123")];
575
+ case 5:
576
+ decrypted = _a.sent();
577
+ console.log("✅ Message decrypted:", decrypted);
578
+ signedMessage = "This message is from Alice. ✍️";
579
+ return [4 /*yield*/, manager.signMessage(signedMessage, aliceKeys.privateKey, "alice123")];
580
+ case 6:
581
+ signature = _a.sent();
582
+ console.log("✅ Message signed");
583
+ return [4 /*yield*/, manager.verifySignature(signedMessage, signature.signature, aliceKeys.publicKey)];
584
+ case 7:
585
+ verification = _a.sent();
586
+ console.log("✅ Signature verified:", verification.valid);
587
+ return [4 /*yield*/, manager.getKeyInfo(aliceKeys.publicKey)];
588
+ case 8:
589
+ aliceKeyInfo = _a.sent();
590
+ return [4 /*yield*/, manager.getKeyInfo(bobKeys.publicKey)];
591
+ case 9:
592
+ bobKeyInfo = _a.sent();
593
+ console.log("✅ Key information retrieved");
594
+ result = {
595
+ success: true,
596
+ messageDecrypted: decrypted === message,
597
+ signatureValid: verification.valid,
598
+ aliceKeyInfo: aliceKeyInfo,
599
+ bobKeyInfo: bobKeyInfo,
600
+ demonstration: {
601
+ keyGeneration: true,
602
+ encryption: true,
603
+ decryption: true,
604
+ signing: true,
605
+ verification: true,
606
+ keyManagement: true,
607
+ },
608
+ };
609
+ console.log("✅ PGP demonstration completed successfully");
610
+ return [2 /*return*/, result];
611
+ case 10:
612
+ error_10 = _a.sent();
613
+ console.error("❌ PGP demonstration failed:", error_10);
614
+ throw error_10;
615
+ case 11: return [2 /*return*/];
616
+ }
617
+ });
618
+ }); };
619
+ export default PGPManager;