internxt-crypto 0.0.9-alpha → 0.0.11
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 +3 -4
- package/dist/asymmetric-crypto-BORmLhnx.js +143 -0
- package/dist/asymmetric-crypto-BORmLhnx.js.map +1 -0
- package/dist/asymmetric-crypto-CyXsV4XT.mjs +102 -0
- package/dist/asymmetric-crypto-CyXsV4XT.mjs.map +1 -0
- package/dist/asymmetric-crypto.d.mts +47 -0
- package/dist/asymmetric-crypto.d.ts +47 -0
- package/dist/asymmetric-crypto.js +8 -0
- package/dist/asymmetric-crypto.mjs +3 -0
- package/dist/chunk-DWirmd9C.mjs +18 -0
- package/dist/chunk-Dt-PWiN7.js +60 -0
- package/dist/constants-Ccp21E03.js +208 -0
- package/dist/constants-Ccp21E03.js.map +1 -0
- package/dist/constants-kTeX-2T0.mjs +34 -0
- package/dist/constants-kTeX-2T0.mjs.map +1 -0
- package/dist/constants.d.mts +33 -0
- package/dist/constants.d.ts +33 -0
- package/dist/constants.js +31 -0
- package/dist/constants.mjs +3 -0
- package/dist/derive-key-Be7hS-cN.mjs +751 -0
- package/dist/derive-key-Be7hS-cN.mjs.map +1 -0
- package/dist/derive-key-CBf2WxJd.js +2513 -0
- package/dist/derive-key-CBf2WxJd.js.map +1 -0
- package/dist/derive-key.d.mts +97 -0
- package/dist/derive-key.d.ts +97 -0
- package/dist/derive-key.js +15 -0
- package/dist/derive-key.mjs +6 -0
- package/dist/email-crypto-BrT98taw.js +617 -0
- package/dist/email-crypto-BrT98taw.js.map +1 -0
- package/dist/email-crypto-DJUEjTxA.mjs +534 -0
- package/dist/email-crypto-DJUEjTxA.mjs.map +1 -0
- package/dist/email-crypto.d.mts +86 -0
- package/dist/email-crypto.d.ts +86 -0
- package/dist/email-crypto.js +17 -0
- package/dist/email-crypto.mjs +8 -0
- package/dist/email-search.d.mts +235 -0
- package/dist/email-search.d.ts +235 -0
- package/dist/email-search.js +637 -0
- package/dist/email-search.js.map +1 -0
- package/dist/email-search.mjs +608 -0
- package/dist/email-search.mjs.map +1 -0
- package/dist/hash-BoqwNkcd.js +190 -0
- package/dist/hash-BoqwNkcd.js.map +1 -0
- package/dist/hash-CXeGAwai.mjs +131 -0
- package/dist/hash-CXeGAwai.mjs.map +1 -0
- package/dist/hash.d.mts +65 -0
- package/dist/hash.d.ts +65 -0
- package/dist/hash.js +11 -0
- package/dist/hash.mjs +3 -0
- package/dist/index-CQqgKsbX.d.ts +50 -0
- package/dist/index-CintVUbp.d.ts +97 -0
- package/dist/index-D5pBU_A5.d.mts +50 -0
- package/dist/index-MaOov-ag.d.mts +97 -0
- package/dist/index.d.mts +52 -0
- package/dist/index.d.ts +52 -0
- package/dist/index.js +116 -2055
- package/dist/index.mjs +15 -8712
- package/dist/keystore-crypto-B4yCVo9l.js +182 -0
- package/dist/keystore-crypto-B4yCVo9l.js.map +1 -0
- package/dist/keystore-crypto-Bjgriq9h.mjs +159 -0
- package/dist/keystore-crypto-Bjgriq9h.mjs.map +1 -0
- package/dist/keystore-crypto.d.mts +40 -0
- package/dist/keystore-crypto.d.ts +40 -0
- package/dist/keystore-crypto.js +11 -0
- package/dist/keystore-crypto.mjs +9 -0
- package/dist/keystore-service.d.mts +48 -0
- package/dist/keystore-service.d.ts +48 -0
- package/dist/keystore-service.js +122 -0
- package/dist/keystore-service.js.map +1 -0
- package/dist/keystore-service.mjs +114 -0
- package/dist/keystore-service.mjs.map +1 -0
- package/dist/post-quantum-crypto-CAi-cEkV.js +189 -0
- package/dist/post-quantum-crypto-CAi-cEkV.js.map +1 -0
- package/dist/post-quantum-crypto-Vv34t6gX.mjs +154 -0
- package/dist/post-quantum-crypto-Vv34t6gX.mjs.map +1 -0
- package/dist/post-quantum-crypto.d.mts +2 -0
- package/dist/post-quantum-crypto.d.ts +2 -0
- package/dist/post-quantum-crypto.js +17 -0
- package/dist/post-quantum-crypto.mjs +3 -0
- package/dist/storage-service-BgIK2aYZ.js +82 -0
- package/dist/storage-service-BgIK2aYZ.js.map +1 -0
- package/dist/storage-service-CubCbhY2.mjs +65 -0
- package/dist/storage-service-CubCbhY2.mjs.map +1 -0
- package/dist/storage-service.d.mts +2 -0
- package/dist/storage-service.d.ts +2 -0
- package/dist/storage-service.js +14 -0
- package/dist/storage-service.mjs +3 -0
- package/dist/symmetric-crypto-CrdS1Che.mjs +197 -0
- package/dist/symmetric-crypto-CrdS1Che.mjs.map +1 -0
- package/dist/symmetric-crypto-D65zB396.js +244 -0
- package/dist/symmetric-crypto-D65zB396.js.map +1 -0
- package/dist/symmetric-crypto.d.mts +60 -0
- package/dist/symmetric-crypto.d.ts +60 -0
- package/dist/symmetric-crypto.js +10 -0
- package/dist/symmetric-crypto.mjs +4 -0
- package/dist/types-52g887Zi.js +16 -0
- package/dist/types-52g887Zi.js.map +1 -0
- package/dist/types-BiEoleqw.mjs +10 -0
- package/dist/types-BiEoleqw.mjs.map +1 -0
- package/dist/types-Ds3ivE9W.d.ts +104 -0
- package/dist/types-DwQJtrTx.d.mts +104 -0
- package/dist/types.d.mts +2 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.js +3 -0
- package/dist/types.mjs +3 -0
- package/dist/utils-CNs3cyDj.js +263 -0
- package/dist/utils-CNs3cyDj.js.map +1 -0
- package/dist/utils-DS04iUcX.mjs +173 -0
- package/dist/utils-DS04iUcX.mjs.map +1 -0
- package/dist/utils.d.mts +99 -0
- package/dist/utils.d.ts +99 -0
- package/dist/utils.js +16 -0
- package/dist/utils.mjs +3 -0
- package/package.json +12 -11
- package/dist/__vite-browser-external-Dyvby5gX.js +0 -2
- package/dist/__vite-browser-external-Dyvby5gX.js.map +0 -1
- package/dist/__vite-browser-external-l0sNRNKZ.mjs +0 -2
- package/dist/__vite-browser-external-l0sNRNKZ.mjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
const require_chunk = require('./chunk-Dt-PWiN7.js');
|
|
2
|
+
const require_utils = require('./utils-CNs3cyDj.js');
|
|
3
|
+
let axios = require("axios");
|
|
4
|
+
axios = require_chunk.__toESM(axios);
|
|
5
|
+
|
|
6
|
+
//#region src/keystore-service/api.ts
|
|
7
|
+
var KeyServiceAPI = class {
|
|
8
|
+
constructor(baseUrl) {
|
|
9
|
+
this.baseUrl = baseUrl;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Converts the specific client error into a proprietary error for our apps
|
|
13
|
+
* @param error
|
|
14
|
+
* @private
|
|
15
|
+
*/
|
|
16
|
+
normalizeError(error) {
|
|
17
|
+
let errorMessage;
|
|
18
|
+
if (error.response?.status === 401) errorMessage = "Unauthorized: Invalid or expired token";
|
|
19
|
+
else if (error.response?.status === 403) errorMessage = "Forbidden: Insufficient permissions";
|
|
20
|
+
else if (error.response?.status === 404) errorMessage = "Keystore not found for the specified user";
|
|
21
|
+
else errorMessage = "AxiosError:" + (error.message ?? "Unknown error");
|
|
22
|
+
throw new Error(errorMessage);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Sends a user's encrypted keystore to the server
|
|
26
|
+
* @param keystore - The encrypted keystore
|
|
27
|
+
* @param url - The user specific part of the url
|
|
28
|
+
* @returns Server response
|
|
29
|
+
*/
|
|
30
|
+
async uploadKeystoreToServer(encryptedKeystore) {
|
|
31
|
+
try {
|
|
32
|
+
const url = `${this.baseUrl}/uploadKeystore`;
|
|
33
|
+
return await axios.default.post(url, { encryptedKeystore }, {
|
|
34
|
+
withCredentials: true,
|
|
35
|
+
headers: { "Content-Type": "application/json" }
|
|
36
|
+
});
|
|
37
|
+
} catch (error) {
|
|
38
|
+
if (axios.default.isAxiosError(error)) this.normalizeError(error);
|
|
39
|
+
throw new Error("Failed to send keystore", { cause: error });
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Requests a user's encrypted keystore from the server
|
|
44
|
+
* @param url - The user-specific part of the url
|
|
45
|
+
* @returns The user's encrypted keystore as base64 string
|
|
46
|
+
*/
|
|
47
|
+
async getKeystoreFromServer(userID, keystoreType) {
|
|
48
|
+
try {
|
|
49
|
+
const url = `${this.baseUrl}/downloadKeystore`;
|
|
50
|
+
return (await axios.default.get(url, {
|
|
51
|
+
params: {
|
|
52
|
+
userID,
|
|
53
|
+
keystoreType
|
|
54
|
+
},
|
|
55
|
+
withCredentials: true,
|
|
56
|
+
headers: { "Content-Type": "application/json" }
|
|
57
|
+
})).data;
|
|
58
|
+
} catch (error) {
|
|
59
|
+
if (axios.default.isAxiosError(error)) this.normalizeError(error);
|
|
60
|
+
throw new Error("Failed to retrive keystore", { cause: error });
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Obtains recipients public keys from the server
|
|
65
|
+
*
|
|
66
|
+
* @param emails - The recipients' emails
|
|
67
|
+
* @returns The list of recipients' public keys
|
|
68
|
+
*/
|
|
69
|
+
async getRecipientsPublicKeysFromServer(emails) {
|
|
70
|
+
try {
|
|
71
|
+
const url = `${this.baseUrl}/getPublicKeys`;
|
|
72
|
+
return (await axios.default.get(url, {
|
|
73
|
+
params: { emails },
|
|
74
|
+
withCredentials: true,
|
|
75
|
+
headers: { "Content-Type": "application/json" }
|
|
76
|
+
})).data;
|
|
77
|
+
} catch (error) {
|
|
78
|
+
if (axios.default.isAxiosError(error)) this.normalizeError(error);
|
|
79
|
+
throw new Error("Failed to retrieve public keys", { cause: error });
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Obtains the recipient public keys from the server
|
|
84
|
+
*
|
|
85
|
+
* @param email - The recipients' emails
|
|
86
|
+
* @returns The list of recipients' public keys
|
|
87
|
+
*/
|
|
88
|
+
async getRecipientsPublicKeys(emails) {
|
|
89
|
+
try {
|
|
90
|
+
const publicKeysBase64 = await this.getRecipientsPublicKeysFromServer(emails);
|
|
91
|
+
const result = [];
|
|
92
|
+
for (const keyBase64 of publicKeysBase64) {
|
|
93
|
+
const publicKeys = await require_utils.base64ToPublicKey(keyBase64);
|
|
94
|
+
result.push(publicKeys);
|
|
95
|
+
}
|
|
96
|
+
return result;
|
|
97
|
+
} catch (error) {
|
|
98
|
+
throw new Error("Failed to get recipients public keys", { cause: error });
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
function getKeyServiceAPI(baseUrl) {
|
|
103
|
+
return new KeyServiceAPI(baseUrl);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
//#endregion
|
|
107
|
+
//#region src/keystore-service/index.ts
|
|
108
|
+
var keystore_service_exports = /* @__PURE__ */ require_chunk.__exportAll({
|
|
109
|
+
KeyServiceAPI: () => KeyServiceAPI,
|
|
110
|
+
getKeyServiceAPI: () => getKeyServiceAPI
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
//#endregion
|
|
114
|
+
exports.KeyServiceAPI = KeyServiceAPI;
|
|
115
|
+
exports.getKeyServiceAPI = getKeyServiceAPI;
|
|
116
|
+
Object.defineProperty(exports, 'keystore_service_exports', {
|
|
117
|
+
enumerable: true,
|
|
118
|
+
get: function () {
|
|
119
|
+
return keystore_service_exports;
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
//# sourceMappingURL=keystore-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keystore-service.js","names":["base64ToPublicKey"],"sources":["../src/keystore-service/api.ts","../src/keystore-service/index.ts"],"sourcesContent":["import axios, { AxiosResponse, AxiosError } from 'axios';\nimport { KeystoreType, EncryptedKeystore, PublicKeys, PublicKeysBase64 } from '../types';\nimport { base64ToPublicKey } from '../utils';\n\nexport class KeyServiceAPI {\n private readonly baseUrl: string;\n\n constructor(baseUrl: string) {\n this.baseUrl = baseUrl;\n }\n\n /**\n * Converts the specific client error into a proprietary error for our apps\n * @param error\n * @private\n */\n private normalizeError(error: AxiosError) {\n let errorMessage: string;\n if (error.response?.status === 401) {\n errorMessage = 'Unauthorized: Invalid or expired token';\n } else if (error.response?.status === 403) {\n errorMessage = 'Forbidden: Insufficient permissions';\n } else if (error.response?.status === 404) {\n errorMessage = 'Keystore not found for the specified user';\n } else {\n errorMessage = 'AxiosError:' + (error.message ?? 'Unknown error');\n }\n\n throw new Error(errorMessage);\n }\n\n /**\n * Sends a user's encrypted keystore to the server\n * @param keystore - The encrypted keystore\n * @param url - The user specific part of the url\n * @returns Server response\n */\n async uploadKeystoreToServer(encryptedKeystore: EncryptedKeystore): Promise<AxiosResponse> {\n try {\n const url = `${this.baseUrl}/uploadKeystore`;\n const response = await axios.post(\n url,\n { encryptedKeystore },\n {\n withCredentials: true,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n );\n return response;\n } catch (error) {\n if (axios.isAxiosError(error)) {\n this.normalizeError(error);\n }\n throw new Error('Failed to send keystore', { cause: error });\n }\n }\n\n /**\n * Requests a user's encrypted keystore from the server\n * @param url - The user-specific part of the url\n * @returns The user's encrypted keystore as base64 string\n */\n async getKeystoreFromServer(userID: string, keystoreType: KeystoreType): Promise<EncryptedKeystore> {\n try {\n const url = `${this.baseUrl}/downloadKeystore`;\n const response = await axios.get<EncryptedKeystore>(url, {\n params: { userID, keystoreType },\n withCredentials: true,\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n return response.data;\n } catch (error) {\n if (axios.isAxiosError(error)) {\n this.normalizeError(error);\n }\n\n throw new Error('Failed to retrive keystore', { cause: error });\n }\n }\n\n /**\n * Obtains recipients public keys from the server\n *\n * @param emails - The recipients' emails\n * @returns The list of recipients' public keys\n */\n async getRecipientsPublicKeysFromServer(emails: string[]): Promise<PublicKeysBase64[]> {\n try {\n const url = `${this.baseUrl}/getPublicKeys`;\n const response = await axios.get<PublicKeysBase64[]>(url, {\n params: {\n emails: emails,\n },\n withCredentials: true,\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n return response.data;\n } catch (error) {\n if (axios.isAxiosError(error)) {\n this.normalizeError(error);\n }\n throw new Error('Failed to retrieve public keys', { cause: error });\n }\n }\n\n /**\n * Obtains the recipient public keys from the server\n *\n * @param email - The recipients' emails\n * @returns The list of recipients' public keys\n */\n async getRecipientsPublicKeys(emails: string[]): Promise<PublicKeys[]> {\n try {\n const publicKeysBase64: PublicKeysBase64[] = await this.getRecipientsPublicKeysFromServer(emails);\n const result: PublicKeys[] = [];\n for (const keyBase64 of publicKeysBase64) {\n const publicKeys = await base64ToPublicKey(keyBase64);\n result.push(publicKeys);\n }\n return result;\n } catch (error) {\n throw new Error('Failed to get recipients public keys', { cause: error });\n }\n }\n}\n\nexport function getKeyServiceAPI(baseUrl: string): KeyServiceAPI {\n return new KeyServiceAPI(baseUrl);\n}\n","export * from './api';\n"],"mappings":";;;;;;AAIA,IAAa,gBAAb,MAA2B;CAGzB,YAAY,SAAiB;AAC3B,OAAK,UAAU;;;;;;;CAQjB,AAAQ,eAAe,OAAmB;EACxC,IAAI;AACJ,MAAI,MAAM,UAAU,WAAW,IAC7B,gBAAe;WACN,MAAM,UAAU,WAAW,IACpC,gBAAe;WACN,MAAM,UAAU,WAAW,IACpC,gBAAe;MAEf,gBAAe,iBAAiB,MAAM,WAAW;AAGnD,QAAM,IAAI,MAAM,aAAa;;;;;;;;CAS/B,MAAM,uBAAuB,mBAA8D;AACzF,MAAI;GACF,MAAM,MAAM,GAAG,KAAK,QAAQ;AAW5B,UAViB,MAAM,cAAM,KAC3B,KACA,EAAE,mBAAmB,EACrB;IACE,iBAAiB;IACjB,SAAS,EACP,gBAAgB,oBACjB;IACF,CACF;WAEM,OAAO;AACd,OAAI,cAAM,aAAa,MAAM,CAC3B,MAAK,eAAe,MAAM;AAE5B,SAAM,IAAI,MAAM,2BAA2B,EAAE,OAAO,OAAO,CAAC;;;;;;;;CAShE,MAAM,sBAAsB,QAAgB,cAAwD;AAClG,MAAI;GACF,MAAM,MAAM,GAAG,KAAK,QAAQ;AAQ5B,WAPiB,MAAM,cAAM,IAAuB,KAAK;IACvD,QAAQ;KAAE;KAAQ;KAAc;IAChC,iBAAiB;IACjB,SAAS,EACP,gBAAgB,oBACjB;IACF,CAAC,EACc;WACT,OAAO;AACd,OAAI,cAAM,aAAa,MAAM,CAC3B,MAAK,eAAe,MAAM;AAG5B,SAAM,IAAI,MAAM,8BAA8B,EAAE,OAAO,OAAO,CAAC;;;;;;;;;CAUnE,MAAM,kCAAkC,QAA+C;AACrF,MAAI;GACF,MAAM,MAAM,GAAG,KAAK,QAAQ;AAU5B,WATiB,MAAM,cAAM,IAAwB,KAAK;IACxD,QAAQ,EACE,QACT;IACD,iBAAiB;IACjB,SAAS,EACP,gBAAgB,oBACjB;IACF,CAAC,EACc;WACT,OAAO;AACd,OAAI,cAAM,aAAa,MAAM,CAC3B,MAAK,eAAe,MAAM;AAE5B,SAAM,IAAI,MAAM,kCAAkC,EAAE,OAAO,OAAO,CAAC;;;;;;;;;CAUvE,MAAM,wBAAwB,QAAyC;AACrE,MAAI;GACF,MAAM,mBAAuC,MAAM,KAAK,kCAAkC,OAAO;GACjG,MAAM,SAAuB,EAAE;AAC/B,QAAK,MAAM,aAAa,kBAAkB;IACxC,MAAM,aAAa,MAAMA,gCAAkB,UAAU;AACrD,WAAO,KAAK,WAAW;;AAEzB,UAAO;WACA,OAAO;AACd,SAAM,IAAI,MAAM,wCAAwC,EAAE,OAAO,OAAO,CAAC;;;;AAK/E,SAAgB,iBAAiB,SAAgC;AAC/D,QAAO,IAAI,cAAc,QAAQ"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { t as __exportAll } from "./chunk-DWirmd9C.mjs";
|
|
2
|
+
import { c as base64ToPublicKey } from "./utils-DS04iUcX.mjs";
|
|
3
|
+
import axios from "axios";
|
|
4
|
+
|
|
5
|
+
//#region src/keystore-service/api.ts
|
|
6
|
+
var KeyServiceAPI = class {
|
|
7
|
+
constructor(baseUrl) {
|
|
8
|
+
this.baseUrl = baseUrl;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Converts the specific client error into a proprietary error for our apps
|
|
12
|
+
* @param error
|
|
13
|
+
* @private
|
|
14
|
+
*/
|
|
15
|
+
normalizeError(error) {
|
|
16
|
+
let errorMessage;
|
|
17
|
+
if (error.response?.status === 401) errorMessage = "Unauthorized: Invalid or expired token";
|
|
18
|
+
else if (error.response?.status === 403) errorMessage = "Forbidden: Insufficient permissions";
|
|
19
|
+
else if (error.response?.status === 404) errorMessage = "Keystore not found for the specified user";
|
|
20
|
+
else errorMessage = "AxiosError:" + (error.message ?? "Unknown error");
|
|
21
|
+
throw new Error(errorMessage);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Sends a user's encrypted keystore to the server
|
|
25
|
+
* @param keystore - The encrypted keystore
|
|
26
|
+
* @param url - The user specific part of the url
|
|
27
|
+
* @returns Server response
|
|
28
|
+
*/
|
|
29
|
+
async uploadKeystoreToServer(encryptedKeystore) {
|
|
30
|
+
try {
|
|
31
|
+
const url = `${this.baseUrl}/uploadKeystore`;
|
|
32
|
+
return await axios.post(url, { encryptedKeystore }, {
|
|
33
|
+
withCredentials: true,
|
|
34
|
+
headers: { "Content-Type": "application/json" }
|
|
35
|
+
});
|
|
36
|
+
} catch (error) {
|
|
37
|
+
if (axios.isAxiosError(error)) this.normalizeError(error);
|
|
38
|
+
throw new Error("Failed to send keystore", { cause: error });
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Requests a user's encrypted keystore from the server
|
|
43
|
+
* @param url - The user-specific part of the url
|
|
44
|
+
* @returns The user's encrypted keystore as base64 string
|
|
45
|
+
*/
|
|
46
|
+
async getKeystoreFromServer(userID, keystoreType) {
|
|
47
|
+
try {
|
|
48
|
+
const url = `${this.baseUrl}/downloadKeystore`;
|
|
49
|
+
return (await axios.get(url, {
|
|
50
|
+
params: {
|
|
51
|
+
userID,
|
|
52
|
+
keystoreType
|
|
53
|
+
},
|
|
54
|
+
withCredentials: true,
|
|
55
|
+
headers: { "Content-Type": "application/json" }
|
|
56
|
+
})).data;
|
|
57
|
+
} catch (error) {
|
|
58
|
+
if (axios.isAxiosError(error)) this.normalizeError(error);
|
|
59
|
+
throw new Error("Failed to retrive keystore", { cause: error });
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Obtains recipients public keys from the server
|
|
64
|
+
*
|
|
65
|
+
* @param emails - The recipients' emails
|
|
66
|
+
* @returns The list of recipients' public keys
|
|
67
|
+
*/
|
|
68
|
+
async getRecipientsPublicKeysFromServer(emails) {
|
|
69
|
+
try {
|
|
70
|
+
const url = `${this.baseUrl}/getPublicKeys`;
|
|
71
|
+
return (await axios.get(url, {
|
|
72
|
+
params: { emails },
|
|
73
|
+
withCredentials: true,
|
|
74
|
+
headers: { "Content-Type": "application/json" }
|
|
75
|
+
})).data;
|
|
76
|
+
} catch (error) {
|
|
77
|
+
if (axios.isAxiosError(error)) this.normalizeError(error);
|
|
78
|
+
throw new Error("Failed to retrieve public keys", { cause: error });
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Obtains the recipient public keys from the server
|
|
83
|
+
*
|
|
84
|
+
* @param email - The recipients' emails
|
|
85
|
+
* @returns The list of recipients' public keys
|
|
86
|
+
*/
|
|
87
|
+
async getRecipientsPublicKeys(emails) {
|
|
88
|
+
try {
|
|
89
|
+
const publicKeysBase64 = await this.getRecipientsPublicKeysFromServer(emails);
|
|
90
|
+
const result = [];
|
|
91
|
+
for (const keyBase64 of publicKeysBase64) {
|
|
92
|
+
const publicKeys = await base64ToPublicKey(keyBase64);
|
|
93
|
+
result.push(publicKeys);
|
|
94
|
+
}
|
|
95
|
+
return result;
|
|
96
|
+
} catch (error) {
|
|
97
|
+
throw new Error("Failed to get recipients public keys", { cause: error });
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
function getKeyServiceAPI(baseUrl) {
|
|
102
|
+
return new KeyServiceAPI(baseUrl);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
//#endregion
|
|
106
|
+
//#region src/keystore-service/index.ts
|
|
107
|
+
var keystore_service_exports = /* @__PURE__ */ __exportAll({
|
|
108
|
+
KeyServiceAPI: () => KeyServiceAPI,
|
|
109
|
+
getKeyServiceAPI: () => getKeyServiceAPI
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
//#endregion
|
|
113
|
+
export { KeyServiceAPI, getKeyServiceAPI, keystore_service_exports as t };
|
|
114
|
+
//# sourceMappingURL=keystore-service.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keystore-service.mjs","names":[],"sources":["../src/keystore-service/api.ts","../src/keystore-service/index.ts"],"sourcesContent":["import axios, { AxiosResponse, AxiosError } from 'axios';\nimport { KeystoreType, EncryptedKeystore, PublicKeys, PublicKeysBase64 } from '../types';\nimport { base64ToPublicKey } from '../utils';\n\nexport class KeyServiceAPI {\n private readonly baseUrl: string;\n\n constructor(baseUrl: string) {\n this.baseUrl = baseUrl;\n }\n\n /**\n * Converts the specific client error into a proprietary error for our apps\n * @param error\n * @private\n */\n private normalizeError(error: AxiosError) {\n let errorMessage: string;\n if (error.response?.status === 401) {\n errorMessage = 'Unauthorized: Invalid or expired token';\n } else if (error.response?.status === 403) {\n errorMessage = 'Forbidden: Insufficient permissions';\n } else if (error.response?.status === 404) {\n errorMessage = 'Keystore not found for the specified user';\n } else {\n errorMessage = 'AxiosError:' + (error.message ?? 'Unknown error');\n }\n\n throw new Error(errorMessage);\n }\n\n /**\n * Sends a user's encrypted keystore to the server\n * @param keystore - The encrypted keystore\n * @param url - The user specific part of the url\n * @returns Server response\n */\n async uploadKeystoreToServer(encryptedKeystore: EncryptedKeystore): Promise<AxiosResponse> {\n try {\n const url = `${this.baseUrl}/uploadKeystore`;\n const response = await axios.post(\n url,\n { encryptedKeystore },\n {\n withCredentials: true,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n );\n return response;\n } catch (error) {\n if (axios.isAxiosError(error)) {\n this.normalizeError(error);\n }\n throw new Error('Failed to send keystore', { cause: error });\n }\n }\n\n /**\n * Requests a user's encrypted keystore from the server\n * @param url - The user-specific part of the url\n * @returns The user's encrypted keystore as base64 string\n */\n async getKeystoreFromServer(userID: string, keystoreType: KeystoreType): Promise<EncryptedKeystore> {\n try {\n const url = `${this.baseUrl}/downloadKeystore`;\n const response = await axios.get<EncryptedKeystore>(url, {\n params: { userID, keystoreType },\n withCredentials: true,\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n return response.data;\n } catch (error) {\n if (axios.isAxiosError(error)) {\n this.normalizeError(error);\n }\n\n throw new Error('Failed to retrive keystore', { cause: error });\n }\n }\n\n /**\n * Obtains recipients public keys from the server\n *\n * @param emails - The recipients' emails\n * @returns The list of recipients' public keys\n */\n async getRecipientsPublicKeysFromServer(emails: string[]): Promise<PublicKeysBase64[]> {\n try {\n const url = `${this.baseUrl}/getPublicKeys`;\n const response = await axios.get<PublicKeysBase64[]>(url, {\n params: {\n emails: emails,\n },\n withCredentials: true,\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n return response.data;\n } catch (error) {\n if (axios.isAxiosError(error)) {\n this.normalizeError(error);\n }\n throw new Error('Failed to retrieve public keys', { cause: error });\n }\n }\n\n /**\n * Obtains the recipient public keys from the server\n *\n * @param email - The recipients' emails\n * @returns The list of recipients' public keys\n */\n async getRecipientsPublicKeys(emails: string[]): Promise<PublicKeys[]> {\n try {\n const publicKeysBase64: PublicKeysBase64[] = await this.getRecipientsPublicKeysFromServer(emails);\n const result: PublicKeys[] = [];\n for (const keyBase64 of publicKeysBase64) {\n const publicKeys = await base64ToPublicKey(keyBase64);\n result.push(publicKeys);\n }\n return result;\n } catch (error) {\n throw new Error('Failed to get recipients public keys', { cause: error });\n }\n }\n}\n\nexport function getKeyServiceAPI(baseUrl: string): KeyServiceAPI {\n return new KeyServiceAPI(baseUrl);\n}\n","export * from './api';\n"],"mappings":";;;;;AAIA,IAAa,gBAAb,MAA2B;CAGzB,YAAY,SAAiB;AAC3B,OAAK,UAAU;;;;;;;CAQjB,AAAQ,eAAe,OAAmB;EACxC,IAAI;AACJ,MAAI,MAAM,UAAU,WAAW,IAC7B,gBAAe;WACN,MAAM,UAAU,WAAW,IACpC,gBAAe;WACN,MAAM,UAAU,WAAW,IACpC,gBAAe;MAEf,gBAAe,iBAAiB,MAAM,WAAW;AAGnD,QAAM,IAAI,MAAM,aAAa;;;;;;;;CAS/B,MAAM,uBAAuB,mBAA8D;AACzF,MAAI;GACF,MAAM,MAAM,GAAG,KAAK,QAAQ;AAW5B,UAViB,MAAM,MAAM,KAC3B,KACA,EAAE,mBAAmB,EACrB;IACE,iBAAiB;IACjB,SAAS,EACP,gBAAgB,oBACjB;IACF,CACF;WAEM,OAAO;AACd,OAAI,MAAM,aAAa,MAAM,CAC3B,MAAK,eAAe,MAAM;AAE5B,SAAM,IAAI,MAAM,2BAA2B,EAAE,OAAO,OAAO,CAAC;;;;;;;;CAShE,MAAM,sBAAsB,QAAgB,cAAwD;AAClG,MAAI;GACF,MAAM,MAAM,GAAG,KAAK,QAAQ;AAQ5B,WAPiB,MAAM,MAAM,IAAuB,KAAK;IACvD,QAAQ;KAAE;KAAQ;KAAc;IAChC,iBAAiB;IACjB,SAAS,EACP,gBAAgB,oBACjB;IACF,CAAC,EACc;WACT,OAAO;AACd,OAAI,MAAM,aAAa,MAAM,CAC3B,MAAK,eAAe,MAAM;AAG5B,SAAM,IAAI,MAAM,8BAA8B,EAAE,OAAO,OAAO,CAAC;;;;;;;;;CAUnE,MAAM,kCAAkC,QAA+C;AACrF,MAAI;GACF,MAAM,MAAM,GAAG,KAAK,QAAQ;AAU5B,WATiB,MAAM,MAAM,IAAwB,KAAK;IACxD,QAAQ,EACE,QACT;IACD,iBAAiB;IACjB,SAAS,EACP,gBAAgB,oBACjB;IACF,CAAC,EACc;WACT,OAAO;AACd,OAAI,MAAM,aAAa,MAAM,CAC3B,MAAK,eAAe,MAAM;AAE5B,SAAM,IAAI,MAAM,kCAAkC,EAAE,OAAO,OAAO,CAAC;;;;;;;;;CAUvE,MAAM,wBAAwB,QAAyC;AACrE,MAAI;GACF,MAAM,mBAAuC,MAAM,KAAK,kCAAkC,OAAO;GACjG,MAAM,SAAuB,EAAE;AAC/B,QAAK,MAAM,aAAa,kBAAkB;IACxC,MAAM,aAAa,MAAM,kBAAkB,UAAU;AACrD,WAAO,KAAK,WAAW;;AAEzB,UAAO;WACA,OAAO;AACd,SAAM,IAAI,MAAM,wCAAwC,EAAE,OAAO,OAAO,CAAC;;;;AAK/E,SAAgB,iBAAiB,SAAgC;AAC/D,QAAO,IAAI,cAAc,QAAQ"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
const require_chunk = require('./chunk-Dt-PWiN7.js');
|
|
2
|
+
let _noble_post_quantum_ml_kem_js = require("@noble/post-quantum/ml-kem.js");
|
|
3
|
+
|
|
4
|
+
//#region src/post-quantum-crypto/kyber768.ts
|
|
5
|
+
/**
|
|
6
|
+
* Generates public and secret Kyber keys
|
|
7
|
+
*
|
|
8
|
+
* @param seed - The optional seed
|
|
9
|
+
* @returns The generated Kyber key pair.
|
|
10
|
+
*/
|
|
11
|
+
function generateKyberKeys$2(seed) {
|
|
12
|
+
try {
|
|
13
|
+
return _noble_post_quantum_ml_kem_js.ml_kem768.keygen(seed);
|
|
14
|
+
} catch (error) {
|
|
15
|
+
throw new Error("Failed to generate Kyber keys", { cause: error });
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Generates a shared secret of 256-bits and encapsulates it to the given public key using Kyber algorithms
|
|
20
|
+
*
|
|
21
|
+
* @param publicKey - The public Kyber key
|
|
22
|
+
* @returns The resulting encapsulation and the generated shared secret.
|
|
23
|
+
*/
|
|
24
|
+
function encapsulateKyber$2(publicKey) {
|
|
25
|
+
try {
|
|
26
|
+
return _noble_post_quantum_ml_kem_js.ml_kem768.encapsulate(publicKey);
|
|
27
|
+
} catch (error) {
|
|
28
|
+
throw new Error("Failed to encapsulate", { cause: error });
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Decapsulates the encapsulated shared secret using Kyber algorithms
|
|
33
|
+
*
|
|
34
|
+
* @param cipherText - The encapsulated key
|
|
35
|
+
* @param secretKey - The private Kyber key
|
|
36
|
+
* @returns The resulting decapsulated shared secret.
|
|
37
|
+
*/
|
|
38
|
+
function decapsulateKyber$2(cipherText, secretKey) {
|
|
39
|
+
try {
|
|
40
|
+
return _noble_post_quantum_ml_kem_js.ml_kem768.decapsulate(cipherText, secretKey);
|
|
41
|
+
} catch (error) {
|
|
42
|
+
throw new Error("Failed to decapsulate", { cause: error });
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
//#endregion
|
|
47
|
+
//#region src/post-quantum-crypto/kyber512.ts
|
|
48
|
+
var kyber512_exports = /* @__PURE__ */ require_chunk.__exportAll({
|
|
49
|
+
decapsulateKyber: () => decapsulateKyber$1,
|
|
50
|
+
encapsulateKyber: () => encapsulateKyber$1,
|
|
51
|
+
generateKyberKeys: () => generateKyberKeys$1
|
|
52
|
+
});
|
|
53
|
+
/**
|
|
54
|
+
* Generates public and secret Kyber keys
|
|
55
|
+
*
|
|
56
|
+
* @param seed - The optional seed
|
|
57
|
+
* @returns The generated Kyber key pair.
|
|
58
|
+
*/
|
|
59
|
+
function generateKyberKeys$1(seed) {
|
|
60
|
+
try {
|
|
61
|
+
return _noble_post_quantum_ml_kem_js.ml_kem512.keygen(seed);
|
|
62
|
+
} catch (error) {
|
|
63
|
+
throw new Error("Failed to generate Kyber keys", { cause: error });
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Generates a shared secret of 256-bits and encapsulates it to the given public key using Kyber algorithms
|
|
68
|
+
*
|
|
69
|
+
* @param publicKey - The public Kyber key
|
|
70
|
+
* @returns The resulting encapsulation and the generated shared secret.
|
|
71
|
+
*/
|
|
72
|
+
function encapsulateKyber$1(publicKey) {
|
|
73
|
+
try {
|
|
74
|
+
return _noble_post_quantum_ml_kem_js.ml_kem512.encapsulate(publicKey);
|
|
75
|
+
} catch (error) {
|
|
76
|
+
throw new Error("Failed to encapsulate", { cause: error });
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Decapsulates the encapsulated shared secret using Kyber algorithms
|
|
81
|
+
*
|
|
82
|
+
* @param cipherText - The encapsulated key
|
|
83
|
+
* @param secretKey - The private Kyber key
|
|
84
|
+
* @returns The resulting decapsulated shared secret.
|
|
85
|
+
*/
|
|
86
|
+
function decapsulateKyber$1(cipherText, secretKey) {
|
|
87
|
+
try {
|
|
88
|
+
return _noble_post_quantum_ml_kem_js.ml_kem512.decapsulate(cipherText, secretKey);
|
|
89
|
+
} catch (error) {
|
|
90
|
+
throw new Error("Failed to decapsulate", { cause: error });
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
//#endregion
|
|
95
|
+
//#region src/post-quantum-crypto/kyber1024.ts
|
|
96
|
+
var kyber1024_exports = /* @__PURE__ */ require_chunk.__exportAll({
|
|
97
|
+
decapsulateKyber: () => decapsulateKyber,
|
|
98
|
+
encapsulateKyber: () => encapsulateKyber,
|
|
99
|
+
generateKyberKeys: () => generateKyberKeys
|
|
100
|
+
});
|
|
101
|
+
/**
|
|
102
|
+
* Generates public and secret Kyber keys
|
|
103
|
+
*
|
|
104
|
+
* @param seed - The optional seed
|
|
105
|
+
* @returns The generated Kyber key pair.
|
|
106
|
+
*/
|
|
107
|
+
function generateKyberKeys(seed) {
|
|
108
|
+
try {
|
|
109
|
+
return _noble_post_quantum_ml_kem_js.ml_kem1024.keygen(seed);
|
|
110
|
+
} catch (error) {
|
|
111
|
+
throw new Error("Failed to generate Kyber keys", { cause: error });
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Generates a shared secret of 256-bits and encapsulates it to the given public key using Kyber algorithms
|
|
116
|
+
*
|
|
117
|
+
* @param publicKey - The public Kyber key
|
|
118
|
+
* @returns The resulting encapsulation and the generated shared secret.
|
|
119
|
+
*/
|
|
120
|
+
function encapsulateKyber(publicKey) {
|
|
121
|
+
try {
|
|
122
|
+
return _noble_post_quantum_ml_kem_js.ml_kem1024.encapsulate(publicKey);
|
|
123
|
+
} catch (error) {
|
|
124
|
+
throw new Error("Failed to encapsulate", { cause: error });
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Decapsulates the encapsulated shared secret using Kyber algorithms
|
|
129
|
+
*
|
|
130
|
+
* @param cipherText - The encapsulated key
|
|
131
|
+
* @param secretKey - The private Kyber key
|
|
132
|
+
* @returns The resulting decapsulated shared secret.
|
|
133
|
+
*/
|
|
134
|
+
function decapsulateKyber(cipherText, secretKey) {
|
|
135
|
+
try {
|
|
136
|
+
return _noble_post_quantum_ml_kem_js.ml_kem1024.decapsulate(cipherText, secretKey);
|
|
137
|
+
} catch (error) {
|
|
138
|
+
throw new Error("Failed to decapsulate", { cause: error });
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
//#endregion
|
|
143
|
+
//#region src/post-quantum-crypto/index.ts
|
|
144
|
+
var post_quantum_crypto_exports = /* @__PURE__ */ require_chunk.__exportAll({
|
|
145
|
+
decapsulateKyber: () => decapsulateKyber$2,
|
|
146
|
+
encapsulateKyber: () => encapsulateKyber$2,
|
|
147
|
+
generateKyberKeys: () => generateKyberKeys$2,
|
|
148
|
+
kyber1024: () => kyber1024_exports,
|
|
149
|
+
kyber512: () => kyber512_exports
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
//#endregion
|
|
153
|
+
Object.defineProperty(exports, 'decapsulateKyber', {
|
|
154
|
+
enumerable: true,
|
|
155
|
+
get: function () {
|
|
156
|
+
return decapsulateKyber$2;
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
Object.defineProperty(exports, 'encapsulateKyber', {
|
|
160
|
+
enumerable: true,
|
|
161
|
+
get: function () {
|
|
162
|
+
return encapsulateKyber$2;
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
Object.defineProperty(exports, 'generateKyberKeys', {
|
|
166
|
+
enumerable: true,
|
|
167
|
+
get: function () {
|
|
168
|
+
return generateKyberKeys$2;
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
Object.defineProperty(exports, 'kyber1024_exports', {
|
|
172
|
+
enumerable: true,
|
|
173
|
+
get: function () {
|
|
174
|
+
return kyber1024_exports;
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
Object.defineProperty(exports, 'kyber512_exports', {
|
|
178
|
+
enumerable: true,
|
|
179
|
+
get: function () {
|
|
180
|
+
return kyber512_exports;
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
Object.defineProperty(exports, 'post_quantum_crypto_exports', {
|
|
184
|
+
enumerable: true,
|
|
185
|
+
get: function () {
|
|
186
|
+
return post_quantum_crypto_exports;
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
//# sourceMappingURL=post-quantum-crypto-CAi-cEkV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"post-quantum-crypto-CAi-cEkV.js","names":["generateKyberKeys","ml_kem768","encapsulateKyber","decapsulateKyber","generateKyberKeys","ml_kem512","encapsulateKyber","decapsulateKyber","ml_kem1024"],"sources":["../src/post-quantum-crypto/kyber768.ts","../src/post-quantum-crypto/kyber512.ts","../src/post-quantum-crypto/kyber1024.ts","../src/post-quantum-crypto/index.ts"],"sourcesContent":["import { ml_kem768 } from '@noble/post-quantum/ml-kem.js';\n\n/**\n * Generates public and secret Kyber keys\n *\n * @param seed - The optional seed\n * @returns The generated Kyber key pair.\n */\nexport function generateKyberKeys(seed?: Uint8Array): {\n publicKey: Uint8Array;\n secretKey: Uint8Array;\n} {\n try {\n return ml_kem768.keygen(seed);\n } catch (error) {\n throw new Error('Failed to generate Kyber keys', { cause: error });\n }\n}\n\n/**\n * Generates a shared secret of 256-bits and encapsulates it to the given public key using Kyber algorithms\n *\n * @param publicKey - The public Kyber key\n * @returns The resulting encapsulation and the generated shared secret.\n */\nexport function encapsulateKyber(publicKey: Uint8Array): {\n cipherText: Uint8Array;\n sharedSecret: Uint8Array;\n} {\n try {\n return ml_kem768.encapsulate(publicKey);\n } catch (error) {\n throw new Error('Failed to encapsulate', { cause: error });\n }\n}\n\n/**\n * Decapsulates the encapsulated shared secret using Kyber algorithms\n *\n * @param cipherText - The encapsulated key\n * @param secretKey - The private Kyber key\n * @returns The resulting decapsulated shared secret.\n */\nexport function decapsulateKyber(cipherText: Uint8Array, secretKey: Uint8Array): Uint8Array {\n try {\n return ml_kem768.decapsulate(cipherText, secretKey);\n } catch (error) {\n throw new Error('Failed to decapsulate', { cause: error });\n }\n}\n","import { ml_kem512 } from '@noble/post-quantum/ml-kem.js';\n\n/**\n * Generates public and secret Kyber keys\n *\n * @param seed - The optional seed\n * @returns The generated Kyber key pair.\n */\nexport function generateKyberKeys(seed?: Uint8Array): {\n publicKey: Uint8Array;\n secretKey: Uint8Array;\n} {\n try {\n return ml_kem512.keygen(seed);\n } catch (error) {\n throw new Error('Failed to generate Kyber keys', { cause: error });\n }\n}\n\n/**\n * Generates a shared secret of 256-bits and encapsulates it to the given public key using Kyber algorithms\n *\n * @param publicKey - The public Kyber key\n * @returns The resulting encapsulation and the generated shared secret.\n */\nexport function encapsulateKyber(publicKey: Uint8Array): {\n cipherText: Uint8Array;\n sharedSecret: Uint8Array;\n} {\n try {\n return ml_kem512.encapsulate(publicKey);\n } catch (error) {\n throw new Error('Failed to encapsulate', { cause: error });\n }\n}\n\n/**\n * Decapsulates the encapsulated shared secret using Kyber algorithms\n *\n * @param cipherText - The encapsulated key\n * @param secretKey - The private Kyber key\n * @returns The resulting decapsulated shared secret.\n */\nexport function decapsulateKyber(cipherText: Uint8Array, secretKey: Uint8Array): Uint8Array {\n try {\n return ml_kem512.decapsulate(cipherText, secretKey);\n } catch (error) {\n throw new Error('Failed to decapsulate', { cause: error });\n }\n}\n","import { ml_kem1024 } from '@noble/post-quantum/ml-kem.js';\n\n/**\n * Generates public and secret Kyber keys\n *\n * @param seed - The optional seed\n * @returns The generated Kyber key pair.\n */\nexport function generateKyberKeys(seed?: Uint8Array): {\n publicKey: Uint8Array;\n secretKey: Uint8Array;\n} {\n try {\n return ml_kem1024.keygen(seed);\n } catch (error) {\n throw new Error('Failed to generate Kyber keys', { cause: error });\n }\n}\n\n/**\n * Generates a shared secret of 256-bits and encapsulates it to the given public key using Kyber algorithms\n *\n * @param publicKey - The public Kyber key\n * @returns The resulting encapsulation and the generated shared secret.\n */\nexport function encapsulateKyber(publicKey: Uint8Array): {\n cipherText: Uint8Array;\n sharedSecret: Uint8Array;\n} {\n try {\n return ml_kem1024.encapsulate(publicKey);\n } catch (error) {\n throw new Error('Failed to encapsulate', { cause: error });\n }\n}\n\n/**\n * Decapsulates the encapsulated shared secret using Kyber algorithms\n *\n * @param cipherText - The encapsulated key\n * @param secretKey - The private Kyber key\n * @returns The resulting decapsulated shared secret.\n */\nexport function decapsulateKyber(cipherText: Uint8Array, secretKey: Uint8Array): Uint8Array {\n try {\n return ml_kem1024.decapsulate(cipherText, secretKey);\n } catch (error) {\n throw new Error('Failed to decapsulate', { cause: error });\n }\n}\n","export * from './kyber768';\nexport * as kyber512 from './kyber512';\nexport * as kyber1024 from './kyber1024';\n"],"mappings":";;;;;;;;;;AAQA,SAAgBA,oBAAkB,MAGhC;AACA,KAAI;AACF,SAAOC,wCAAU,OAAO,KAAK;UACtB,OAAO;AACd,QAAM,IAAI,MAAM,iCAAiC,EAAE,OAAO,OAAO,CAAC;;;;;;;;;AAUtE,SAAgBC,mBAAiB,WAG/B;AACA,KAAI;AACF,SAAOD,wCAAU,YAAY,UAAU;UAChC,OAAO;AACd,QAAM,IAAI,MAAM,yBAAyB,EAAE,OAAO,OAAO,CAAC;;;;;;;;;;AAW9D,SAAgBE,mBAAiB,YAAwB,WAAmC;AAC1F,KAAI;AACF,SAAOF,wCAAU,YAAY,YAAY,UAAU;UAC5C,OAAO;AACd,QAAM,IAAI,MAAM,yBAAyB,EAAE,OAAO,OAAO,CAAC;;;;;;;;;;;;;;;;;ACvC9D,SAAgBG,oBAAkB,MAGhC;AACA,KAAI;AACF,SAAOC,wCAAU,OAAO,KAAK;UACtB,OAAO;AACd,QAAM,IAAI,MAAM,iCAAiC,EAAE,OAAO,OAAO,CAAC;;;;;;;;;AAUtE,SAAgBC,mBAAiB,WAG/B;AACA,KAAI;AACF,SAAOD,wCAAU,YAAY,UAAU;UAChC,OAAO;AACd,QAAM,IAAI,MAAM,yBAAyB,EAAE,OAAO,OAAO,CAAC;;;;;;;;;;AAW9D,SAAgBE,mBAAiB,YAAwB,WAAmC;AAC1F,KAAI;AACF,SAAOF,wCAAU,YAAY,YAAY,UAAU;UAC5C,OAAO;AACd,QAAM,IAAI,MAAM,yBAAyB,EAAE,OAAO,OAAO,CAAC;;;;;;;;;;;;;;;;;ACvC9D,SAAgB,kBAAkB,MAGhC;AACA,KAAI;AACF,SAAOG,yCAAW,OAAO,KAAK;UACvB,OAAO;AACd,QAAM,IAAI,MAAM,iCAAiC,EAAE,OAAO,OAAO,CAAC;;;;;;;;;AAUtE,SAAgB,iBAAiB,WAG/B;AACA,KAAI;AACF,SAAOA,yCAAW,YAAY,UAAU;UACjC,OAAO;AACd,QAAM,IAAI,MAAM,yBAAyB,EAAE,OAAO,OAAO,CAAC;;;;;;;;;;AAW9D,SAAgB,iBAAiB,YAAwB,WAAmC;AAC1F,KAAI;AACF,SAAOA,yCAAW,YAAY,YAAY,UAAU;UAC7C,OAAO;AACd,QAAM,IAAI,MAAM,yBAAyB,EAAE,OAAO,OAAO,CAAC"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { t as __exportAll } from "./chunk-DWirmd9C.mjs";
|
|
2
|
+
import { ml_kem1024, ml_kem512, ml_kem768 } from "@noble/post-quantum/ml-kem.js";
|
|
3
|
+
|
|
4
|
+
//#region src/post-quantum-crypto/kyber768.ts
|
|
5
|
+
/**
|
|
6
|
+
* Generates public and secret Kyber keys
|
|
7
|
+
*
|
|
8
|
+
* @param seed - The optional seed
|
|
9
|
+
* @returns The generated Kyber key pair.
|
|
10
|
+
*/
|
|
11
|
+
function generateKyberKeys$2(seed) {
|
|
12
|
+
try {
|
|
13
|
+
return ml_kem768.keygen(seed);
|
|
14
|
+
} catch (error) {
|
|
15
|
+
throw new Error("Failed to generate Kyber keys", { cause: error });
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Generates a shared secret of 256-bits and encapsulates it to the given public key using Kyber algorithms
|
|
20
|
+
*
|
|
21
|
+
* @param publicKey - The public Kyber key
|
|
22
|
+
* @returns The resulting encapsulation and the generated shared secret.
|
|
23
|
+
*/
|
|
24
|
+
function encapsulateKyber$2(publicKey) {
|
|
25
|
+
try {
|
|
26
|
+
return ml_kem768.encapsulate(publicKey);
|
|
27
|
+
} catch (error) {
|
|
28
|
+
throw new Error("Failed to encapsulate", { cause: error });
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Decapsulates the encapsulated shared secret using Kyber algorithms
|
|
33
|
+
*
|
|
34
|
+
* @param cipherText - The encapsulated key
|
|
35
|
+
* @param secretKey - The private Kyber key
|
|
36
|
+
* @returns The resulting decapsulated shared secret.
|
|
37
|
+
*/
|
|
38
|
+
function decapsulateKyber$2(cipherText, secretKey) {
|
|
39
|
+
try {
|
|
40
|
+
return ml_kem768.decapsulate(cipherText, secretKey);
|
|
41
|
+
} catch (error) {
|
|
42
|
+
throw new Error("Failed to decapsulate", { cause: error });
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
//#endregion
|
|
47
|
+
//#region src/post-quantum-crypto/kyber512.ts
|
|
48
|
+
var kyber512_exports = /* @__PURE__ */ __exportAll({
|
|
49
|
+
decapsulateKyber: () => decapsulateKyber$1,
|
|
50
|
+
encapsulateKyber: () => encapsulateKyber$1,
|
|
51
|
+
generateKyberKeys: () => generateKyberKeys$1
|
|
52
|
+
});
|
|
53
|
+
/**
|
|
54
|
+
* Generates public and secret Kyber keys
|
|
55
|
+
*
|
|
56
|
+
* @param seed - The optional seed
|
|
57
|
+
* @returns The generated Kyber key pair.
|
|
58
|
+
*/
|
|
59
|
+
function generateKyberKeys$1(seed) {
|
|
60
|
+
try {
|
|
61
|
+
return ml_kem512.keygen(seed);
|
|
62
|
+
} catch (error) {
|
|
63
|
+
throw new Error("Failed to generate Kyber keys", { cause: error });
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Generates a shared secret of 256-bits and encapsulates it to the given public key using Kyber algorithms
|
|
68
|
+
*
|
|
69
|
+
* @param publicKey - The public Kyber key
|
|
70
|
+
* @returns The resulting encapsulation and the generated shared secret.
|
|
71
|
+
*/
|
|
72
|
+
function encapsulateKyber$1(publicKey) {
|
|
73
|
+
try {
|
|
74
|
+
return ml_kem512.encapsulate(publicKey);
|
|
75
|
+
} catch (error) {
|
|
76
|
+
throw new Error("Failed to encapsulate", { cause: error });
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Decapsulates the encapsulated shared secret using Kyber algorithms
|
|
81
|
+
*
|
|
82
|
+
* @param cipherText - The encapsulated key
|
|
83
|
+
* @param secretKey - The private Kyber key
|
|
84
|
+
* @returns The resulting decapsulated shared secret.
|
|
85
|
+
*/
|
|
86
|
+
function decapsulateKyber$1(cipherText, secretKey) {
|
|
87
|
+
try {
|
|
88
|
+
return ml_kem512.decapsulate(cipherText, secretKey);
|
|
89
|
+
} catch (error) {
|
|
90
|
+
throw new Error("Failed to decapsulate", { cause: error });
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
//#endregion
|
|
95
|
+
//#region src/post-quantum-crypto/kyber1024.ts
|
|
96
|
+
var kyber1024_exports = /* @__PURE__ */ __exportAll({
|
|
97
|
+
decapsulateKyber: () => decapsulateKyber,
|
|
98
|
+
encapsulateKyber: () => encapsulateKyber,
|
|
99
|
+
generateKyberKeys: () => generateKyberKeys
|
|
100
|
+
});
|
|
101
|
+
/**
|
|
102
|
+
* Generates public and secret Kyber keys
|
|
103
|
+
*
|
|
104
|
+
* @param seed - The optional seed
|
|
105
|
+
* @returns The generated Kyber key pair.
|
|
106
|
+
*/
|
|
107
|
+
function generateKyberKeys(seed) {
|
|
108
|
+
try {
|
|
109
|
+
return ml_kem1024.keygen(seed);
|
|
110
|
+
} catch (error) {
|
|
111
|
+
throw new Error("Failed to generate Kyber keys", { cause: error });
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Generates a shared secret of 256-bits and encapsulates it to the given public key using Kyber algorithms
|
|
116
|
+
*
|
|
117
|
+
* @param publicKey - The public Kyber key
|
|
118
|
+
* @returns The resulting encapsulation and the generated shared secret.
|
|
119
|
+
*/
|
|
120
|
+
function encapsulateKyber(publicKey) {
|
|
121
|
+
try {
|
|
122
|
+
return ml_kem1024.encapsulate(publicKey);
|
|
123
|
+
} catch (error) {
|
|
124
|
+
throw new Error("Failed to encapsulate", { cause: error });
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Decapsulates the encapsulated shared secret using Kyber algorithms
|
|
129
|
+
*
|
|
130
|
+
* @param cipherText - The encapsulated key
|
|
131
|
+
* @param secretKey - The private Kyber key
|
|
132
|
+
* @returns The resulting decapsulated shared secret.
|
|
133
|
+
*/
|
|
134
|
+
function decapsulateKyber(cipherText, secretKey) {
|
|
135
|
+
try {
|
|
136
|
+
return ml_kem1024.decapsulate(cipherText, secretKey);
|
|
137
|
+
} catch (error) {
|
|
138
|
+
throw new Error("Failed to decapsulate", { cause: error });
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
//#endregion
|
|
143
|
+
//#region src/post-quantum-crypto/index.ts
|
|
144
|
+
var post_quantum_crypto_exports = /* @__PURE__ */ __exportAll({
|
|
145
|
+
decapsulateKyber: () => decapsulateKyber$2,
|
|
146
|
+
encapsulateKyber: () => encapsulateKyber$2,
|
|
147
|
+
generateKyberKeys: () => generateKyberKeys$2,
|
|
148
|
+
kyber1024: () => kyber1024_exports,
|
|
149
|
+
kyber512: () => kyber512_exports
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
//#endregion
|
|
153
|
+
export { encapsulateKyber$2 as a, decapsulateKyber$2 as i, kyber1024_exports as n, generateKyberKeys$2 as o, kyber512_exports as r, post_quantum_crypto_exports as t };
|
|
154
|
+
//# sourceMappingURL=post-quantum-crypto-Vv34t6gX.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"post-quantum-crypto-Vv34t6gX.mjs","names":["generateKyberKeys","encapsulateKyber","decapsulateKyber","generateKyberKeys","encapsulateKyber","decapsulateKyber"],"sources":["../src/post-quantum-crypto/kyber768.ts","../src/post-quantum-crypto/kyber512.ts","../src/post-quantum-crypto/kyber1024.ts","../src/post-quantum-crypto/index.ts"],"sourcesContent":["import { ml_kem768 } from '@noble/post-quantum/ml-kem.js';\n\n/**\n * Generates public and secret Kyber keys\n *\n * @param seed - The optional seed\n * @returns The generated Kyber key pair.\n */\nexport function generateKyberKeys(seed?: Uint8Array): {\n publicKey: Uint8Array;\n secretKey: Uint8Array;\n} {\n try {\n return ml_kem768.keygen(seed);\n } catch (error) {\n throw new Error('Failed to generate Kyber keys', { cause: error });\n }\n}\n\n/**\n * Generates a shared secret of 256-bits and encapsulates it to the given public key using Kyber algorithms\n *\n * @param publicKey - The public Kyber key\n * @returns The resulting encapsulation and the generated shared secret.\n */\nexport function encapsulateKyber(publicKey: Uint8Array): {\n cipherText: Uint8Array;\n sharedSecret: Uint8Array;\n} {\n try {\n return ml_kem768.encapsulate(publicKey);\n } catch (error) {\n throw new Error('Failed to encapsulate', { cause: error });\n }\n}\n\n/**\n * Decapsulates the encapsulated shared secret using Kyber algorithms\n *\n * @param cipherText - The encapsulated key\n * @param secretKey - The private Kyber key\n * @returns The resulting decapsulated shared secret.\n */\nexport function decapsulateKyber(cipherText: Uint8Array, secretKey: Uint8Array): Uint8Array {\n try {\n return ml_kem768.decapsulate(cipherText, secretKey);\n } catch (error) {\n throw new Error('Failed to decapsulate', { cause: error });\n }\n}\n","import { ml_kem512 } from '@noble/post-quantum/ml-kem.js';\n\n/**\n * Generates public and secret Kyber keys\n *\n * @param seed - The optional seed\n * @returns The generated Kyber key pair.\n */\nexport function generateKyberKeys(seed?: Uint8Array): {\n publicKey: Uint8Array;\n secretKey: Uint8Array;\n} {\n try {\n return ml_kem512.keygen(seed);\n } catch (error) {\n throw new Error('Failed to generate Kyber keys', { cause: error });\n }\n}\n\n/**\n * Generates a shared secret of 256-bits and encapsulates it to the given public key using Kyber algorithms\n *\n * @param publicKey - The public Kyber key\n * @returns The resulting encapsulation and the generated shared secret.\n */\nexport function encapsulateKyber(publicKey: Uint8Array): {\n cipherText: Uint8Array;\n sharedSecret: Uint8Array;\n} {\n try {\n return ml_kem512.encapsulate(publicKey);\n } catch (error) {\n throw new Error('Failed to encapsulate', { cause: error });\n }\n}\n\n/**\n * Decapsulates the encapsulated shared secret using Kyber algorithms\n *\n * @param cipherText - The encapsulated key\n * @param secretKey - The private Kyber key\n * @returns The resulting decapsulated shared secret.\n */\nexport function decapsulateKyber(cipherText: Uint8Array, secretKey: Uint8Array): Uint8Array {\n try {\n return ml_kem512.decapsulate(cipherText, secretKey);\n } catch (error) {\n throw new Error('Failed to decapsulate', { cause: error });\n }\n}\n","import { ml_kem1024 } from '@noble/post-quantum/ml-kem.js';\n\n/**\n * Generates public and secret Kyber keys\n *\n * @param seed - The optional seed\n * @returns The generated Kyber key pair.\n */\nexport function generateKyberKeys(seed?: Uint8Array): {\n publicKey: Uint8Array;\n secretKey: Uint8Array;\n} {\n try {\n return ml_kem1024.keygen(seed);\n } catch (error) {\n throw new Error('Failed to generate Kyber keys', { cause: error });\n }\n}\n\n/**\n * Generates a shared secret of 256-bits and encapsulates it to the given public key using Kyber algorithms\n *\n * @param publicKey - The public Kyber key\n * @returns The resulting encapsulation and the generated shared secret.\n */\nexport function encapsulateKyber(publicKey: Uint8Array): {\n cipherText: Uint8Array;\n sharedSecret: Uint8Array;\n} {\n try {\n return ml_kem1024.encapsulate(publicKey);\n } catch (error) {\n throw new Error('Failed to encapsulate', { cause: error });\n }\n}\n\n/**\n * Decapsulates the encapsulated shared secret using Kyber algorithms\n *\n * @param cipherText - The encapsulated key\n * @param secretKey - The private Kyber key\n * @returns The resulting decapsulated shared secret.\n */\nexport function decapsulateKyber(cipherText: Uint8Array, secretKey: Uint8Array): Uint8Array {\n try {\n return ml_kem1024.decapsulate(cipherText, secretKey);\n } catch (error) {\n throw new Error('Failed to decapsulate', { cause: error });\n }\n}\n","export * from './kyber768';\nexport * as kyber512 from './kyber512';\nexport * as kyber1024 from './kyber1024';\n"],"mappings":";;;;;;;;;;AAQA,SAAgBA,oBAAkB,MAGhC;AACA,KAAI;AACF,SAAO,UAAU,OAAO,KAAK;UACtB,OAAO;AACd,QAAM,IAAI,MAAM,iCAAiC,EAAE,OAAO,OAAO,CAAC;;;;;;;;;AAUtE,SAAgBC,mBAAiB,WAG/B;AACA,KAAI;AACF,SAAO,UAAU,YAAY,UAAU;UAChC,OAAO;AACd,QAAM,IAAI,MAAM,yBAAyB,EAAE,OAAO,OAAO,CAAC;;;;;;;;;;AAW9D,SAAgBC,mBAAiB,YAAwB,WAAmC;AAC1F,KAAI;AACF,SAAO,UAAU,YAAY,YAAY,UAAU;UAC5C,OAAO;AACd,QAAM,IAAI,MAAM,yBAAyB,EAAE,OAAO,OAAO,CAAC;;;;;;;;;;;;;;;;;ACvC9D,SAAgBC,oBAAkB,MAGhC;AACA,KAAI;AACF,SAAO,UAAU,OAAO,KAAK;UACtB,OAAO;AACd,QAAM,IAAI,MAAM,iCAAiC,EAAE,OAAO,OAAO,CAAC;;;;;;;;;AAUtE,SAAgBC,mBAAiB,WAG/B;AACA,KAAI;AACF,SAAO,UAAU,YAAY,UAAU;UAChC,OAAO;AACd,QAAM,IAAI,MAAM,yBAAyB,EAAE,OAAO,OAAO,CAAC;;;;;;;;;;AAW9D,SAAgBC,mBAAiB,YAAwB,WAAmC;AAC1F,KAAI;AACF,SAAO,UAAU,YAAY,YAAY,UAAU;UAC5C,OAAO;AACd,QAAM,IAAI,MAAM,yBAAyB,EAAE,OAAO,OAAO,CAAC;;;;;;;;;;;;;;;;;ACvC9D,SAAgB,kBAAkB,MAGhC;AACA,KAAI;AACF,SAAO,WAAW,OAAO,KAAK;UACvB,OAAO;AACd,QAAM,IAAI,MAAM,iCAAiC,EAAE,OAAO,OAAO,CAAC;;;;;;;;;AAUtE,SAAgB,iBAAiB,WAG/B;AACA,KAAI;AACF,SAAO,WAAW,YAAY,UAAU;UACjC,OAAO;AACd,QAAM,IAAI,MAAM,yBAAyB,EAAE,OAAO,OAAO,CAAC;;;;;;;;;;AAW9D,SAAgB,iBAAiB,YAAwB,WAAmC;AAC1F,KAAI;AACF,SAAO,WAAW,YAAY,YAAY,UAAU;UAC7C,OAAO;AACd,QAAM,IAAI,MAAM,yBAAyB,EAAE,OAAO,OAAO,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { a as encapsulateKyber, i as decapsulateKyber, n as kyber1024_d_exports, o as generateKyberKeys, r as kyber512_d_exports } from "./index-MaOov-ag.mjs";
|
|
2
|
+
export { decapsulateKyber, encapsulateKyber, generateKyberKeys, kyber1024_d_exports as kyber1024, kyber512_d_exports as kyber512 };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { a as encapsulateKyber, i as decapsulateKyber, n as kyber1024_d_exports, o as generateKyberKeys, r as kyber512_d_exports } from "./index-CintVUbp.js";
|
|
2
|
+
export { decapsulateKyber, encapsulateKyber, generateKyberKeys, kyber1024_d_exports as kyber1024, kyber512_d_exports as kyber512 };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const require_post_quantum_crypto = require('./post-quantum-crypto-CAi-cEkV.js');
|
|
2
|
+
|
|
3
|
+
exports.decapsulateKyber = require_post_quantum_crypto.decapsulateKyber;
|
|
4
|
+
exports.encapsulateKyber = require_post_quantum_crypto.encapsulateKyber;
|
|
5
|
+
exports.generateKyberKeys = require_post_quantum_crypto.generateKyberKeys;
|
|
6
|
+
Object.defineProperty(exports, 'kyber1024', {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return require_post_quantum_crypto.kyber1024_exports;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, 'kyber512', {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return require_post_quantum_crypto.kyber512_exports;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { a as encapsulateKyber, i as decapsulateKyber, n as kyber1024_exports, o as generateKyberKeys, r as kyber512_exports } from "./post-quantum-crypto-Vv34t6gX.mjs";
|
|
2
|
+
|
|
3
|
+
export { decapsulateKyber, encapsulateKyber, generateKyberKeys, kyber1024_exports as kyber1024, kyber512_exports as kyber512 };
|