react-native-quick-crypto 1.0.0-beta.5 → 1.0.0-beta.7

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 (107) hide show
  1. package/README.md +1 -1
  2. package/android/CMakeLists.txt +2 -4
  3. package/android/build.gradle +33 -4
  4. package/cpp/ed25519/HybridEdKeyPair.cpp +268 -0
  5. package/cpp/ed25519/HybridEdKeyPair.hpp +85 -0
  6. package/cpp/pbkdf2/HybridPbkdf2.cpp +6 -5
  7. package/cpp/pbkdf2/HybridPbkdf2.hpp +4 -4
  8. package/cpp/random/HybridRandom.cpp +6 -5
  9. package/cpp/random/HybridRandom.hpp +8 -4
  10. package/lib/commonjs/ed.js +41 -0
  11. package/lib/commonjs/ed.js.map +1 -0
  12. package/lib/commonjs/index.js +37 -5
  13. package/lib/commonjs/index.js.map +1 -1
  14. package/lib/commonjs/keys/classes.js +191 -0
  15. package/lib/commonjs/keys/classes.js.map +1 -0
  16. package/lib/commonjs/keys/generateKeyPair.js +148 -0
  17. package/lib/commonjs/keys/generateKeyPair.js.map +1 -0
  18. package/lib/commonjs/keys/index.js +48 -72
  19. package/lib/commonjs/keys/index.js.map +1 -1
  20. package/lib/commonjs/keys/signVerify.js +41 -0
  21. package/lib/commonjs/keys/signVerify.js.map +1 -0
  22. package/lib/commonjs/keys/utils.js +118 -0
  23. package/lib/commonjs/keys/utils.js.map +1 -0
  24. package/lib/commonjs/specs/edKeyPair.nitro.js +6 -0
  25. package/lib/commonjs/specs/edKeyPair.nitro.js.map +1 -0
  26. package/lib/commonjs/utils/conversion.js +2 -0
  27. package/lib/commonjs/utils/conversion.js.map +1 -1
  28. package/lib/commonjs/utils/index.js +11 -0
  29. package/lib/commonjs/utils/index.js.map +1 -1
  30. package/lib/commonjs/utils/types.js +12 -1
  31. package/lib/commonjs/utils/types.js.map +1 -1
  32. package/lib/commonjs/utils/validation.js +25 -0
  33. package/lib/commonjs/utils/validation.js.map +1 -0
  34. package/lib/module/ed.js +36 -0
  35. package/lib/module/ed.js.map +1 -0
  36. package/lib/module/index.js +7 -5
  37. package/lib/module/index.js.map +1 -1
  38. package/lib/module/keys/classes.js +182 -0
  39. package/lib/module/keys/classes.js.map +1 -0
  40. package/lib/module/keys/generateKeyPair.js +148 -0
  41. package/lib/module/keys/generateKeyPair.js.map +1 -0
  42. package/lib/module/keys/index.js +25 -77
  43. package/lib/module/keys/index.js.map +1 -1
  44. package/lib/module/keys/signVerify.js +41 -0
  45. package/lib/module/keys/signVerify.js.map +1 -0
  46. package/lib/module/keys/utils.js +110 -0
  47. package/lib/module/keys/utils.js.map +1 -0
  48. package/lib/module/specs/edKeyPair.nitro.js +4 -0
  49. package/lib/module/specs/edKeyPair.nitro.js.map +1 -0
  50. package/lib/module/utils/conversion.js +1 -0
  51. package/lib/module/utils/conversion.js.map +1 -1
  52. package/lib/module/utils/index.js +1 -0
  53. package/lib/module/utils/index.js.map +1 -1
  54. package/lib/module/utils/types.js +14 -0
  55. package/lib/module/utils/types.js.map +1 -1
  56. package/lib/module/utils/validation.js +19 -0
  57. package/lib/module/utils/validation.js.map +1 -0
  58. package/lib/tsconfig.tsbuildinfo +1 -1
  59. package/lib/typescript/ed.d.ts +17 -0
  60. package/lib/typescript/ed.d.ts.map +1 -0
  61. package/lib/typescript/index.d.ts +29 -5
  62. package/lib/typescript/index.d.ts.map +1 -1
  63. package/lib/typescript/keys/classes.d.ts +38 -0
  64. package/lib/typescript/keys/classes.d.ts.map +1 -0
  65. package/lib/typescript/keys/generateKeyPair.d.ts +1 -0
  66. package/lib/typescript/keys/generateKeyPair.d.ts.map +1 -0
  67. package/lib/typescript/keys/index.d.ts +3 -21
  68. package/lib/typescript/keys/index.d.ts.map +1 -1
  69. package/lib/typescript/keys/signVerify.d.ts +1 -0
  70. package/lib/typescript/keys/signVerify.d.ts.map +1 -0
  71. package/lib/typescript/keys/utils.d.ts +32 -0
  72. package/lib/typescript/keys/utils.d.ts.map +1 -0
  73. package/lib/typescript/specs/edKeyPair.nitro.d.ts +16 -0
  74. package/lib/typescript/specs/edKeyPair.nitro.d.ts.map +1 -0
  75. package/lib/typescript/utils/conversion.d.ts +1 -0
  76. package/lib/typescript/utils/conversion.d.ts.map +1 -1
  77. package/lib/typescript/utils/index.d.ts +1 -0
  78. package/lib/typescript/utils/index.d.ts.map +1 -1
  79. package/lib/typescript/utils/types.d.ts +60 -4
  80. package/lib/typescript/utils/types.d.ts.map +1 -1
  81. package/lib/typescript/utils/validation.d.ts +8 -0
  82. package/lib/typescript/utils/validation.d.ts.map +1 -0
  83. package/nitrogen/generated/android/QuickCrypto+autolinking.cmake +1 -0
  84. package/nitrogen/generated/android/QuickCrypto+autolinking.gradle +2 -0
  85. package/nitrogen/generated/android/QuickCryptoOnLoad.cpp +10 -0
  86. package/nitrogen/generated/ios/QuickCrypto+autolinking.rb +1 -1
  87. package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Umbrella.hpp +4 -1
  88. package/nitrogen/generated/ios/QuickCryptoAutolinking.mm +10 -0
  89. package/nitrogen/generated/shared/c++/{AsymmetricKeyType.hpp → CFRGKeyPairType.hpp} +25 -25
  90. package/nitrogen/generated/shared/c++/HybridEdKeyPairSpec.cpp +29 -0
  91. package/nitrogen/generated/shared/c++/HybridEdKeyPairSpec.hpp +74 -0
  92. package/nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.hpp +4 -4
  93. package/nitrogen/generated/shared/c++/HybridPbkdf2Spec.hpp +2 -2
  94. package/nitrogen/generated/shared/c++/HybridRandomSpec.hpp +2 -2
  95. package/package.json +37 -21
  96. package/src/ed.ts +76 -0
  97. package/src/index.ts +7 -5
  98. package/src/keys/classes.ts +211 -0
  99. package/src/keys/generateKeyPair.ts +146 -0
  100. package/src/keys/index.ts +42 -99
  101. package/src/keys/signVerify.ts +39 -0
  102. package/src/keys/utils.ts +184 -0
  103. package/src/specs/edKeyPair.nitro.ts +41 -0
  104. package/src/utils/conversion.ts +2 -0
  105. package/src/utils/index.ts +1 -0
  106. package/src/utils/types.ts +84 -4
  107. package/src/utils/validation.ts +35 -0
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isCryptoKey = void 0;
7
+ exports.parseKeyEncoding = parseKeyEncoding;
8
+ exports.parsePrivateKeyEncoding = parsePrivateKeyEncoding;
9
+ exports.parsePublicKeyEncoding = parsePublicKeyEncoding;
10
+ var _utils = require("../utils");
11
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
+ const isCryptoKey = obj => {
13
+ return obj !== null && obj?.keyObject !== undefined;
14
+ };
15
+
16
+ /**
17
+ * Parses the public key encoding based on an object. keyType must be undefined
18
+ * when this is used to parse an input encoding and must be a valid key type if
19
+ * used to parse an output encoding.
20
+ */
21
+ exports.isCryptoKey = isCryptoKey;
22
+ function parsePublicKeyEncoding(enc, keyType, objName) {
23
+ return parseKeyEncoding(enc, keyType, keyType ? true : undefined, objName);
24
+ }
25
+
26
+ /**
27
+ * Parses the private key encoding based on an object. keyType must be undefined
28
+ * when this is used to parse an input encoding and must be a valid key type if
29
+ * used to parse an output encoding.
30
+ */
31
+ function parsePrivateKeyEncoding(enc, keyType, objName) {
32
+ return parseKeyEncoding(enc, keyType, false, objName);
33
+ }
34
+ function parseKeyEncoding(enc, keyType, isPublic, objName) {
35
+ // validateObject(enc, 'options');
36
+
37
+ const isInput = keyType === undefined;
38
+ const {
39
+ format,
40
+ type
41
+ } = parseKeyFormatAndType(enc, keyType, isPublic, objName);
42
+ let cipher, passphrase, encoding;
43
+ if (isPublic !== true) {
44
+ ({
45
+ cipher,
46
+ passphrase,
47
+ encoding
48
+ } = enc);
49
+ if (!isInput) {
50
+ if (cipher != null) {
51
+ if (typeof cipher !== 'string') throw new Error(`Invalid argument ${option('cipher', objName)}: ${cipher}`);
52
+ if (format === _utils.KFormatType.kKeyFormatDER && (type === _utils.KeyEncoding.kKeyEncodingPKCS1 || type === _utils.KeyEncoding.kKeyEncodingSEC1)) {
53
+ throw new Error(`Incompatible key options ${encodingNames[type]} does not support encryption`);
54
+ }
55
+ } else if (passphrase !== undefined) {
56
+ throw new Error(`invalid argument ${option('cipher', objName)}: ${cipher}`);
57
+ }
58
+ }
59
+ if (isInput && passphrase !== undefined && !(0, _utils.isStringOrBuffer)(passphrase) || !isInput && cipher != null && !(0, _utils.isStringOrBuffer)(passphrase)) {
60
+ throw new Error(`Invalid argument value ${option('passphrase', objName)}: ${passphrase}`);
61
+ }
62
+ }
63
+ if (passphrase !== undefined) passphrase = (0, _utils.binaryLikeToArrayBuffer)(passphrase, encoding);
64
+ return {
65
+ format,
66
+ type,
67
+ cipher,
68
+ passphrase
69
+ };
70
+ }
71
+ const encodingNames = {
72
+ [_utils.KeyEncoding.kKeyEncodingPKCS1]: 'pkcs1',
73
+ [_utils.KeyEncoding.kKeyEncodingPKCS8]: 'pkcs8',
74
+ [_utils.KeyEncoding.kKeyEncodingSPKI]: 'spki',
75
+ [_utils.KeyEncoding.kKeyEncodingSEC1]: 'sec1'
76
+ };
77
+ function option(name, objName) {
78
+ return objName === undefined ? `options.${name}` : `options.${objName}.${name}`;
79
+ }
80
+ function parseKeyFormat(formatStr, defaultFormat, optionName) {
81
+ if (formatStr === undefined && defaultFormat !== undefined) return defaultFormat;else if (formatStr === 'pem') return _utils.KFormatType.kKeyFormatPEM;else if (formatStr === 'der') return _utils.KFormatType.kKeyFormatDER;else if (formatStr === 'jwk') return _utils.KFormatType.kKeyFormatJWK;
82
+ throw new Error(`Invalid key format str: ${optionName}`);
83
+ }
84
+ function parseKeyType(typeStr, required, keyType, isPublic, optionName) {
85
+ if (typeStr === undefined && !required) {
86
+ return undefined;
87
+ } else if (typeStr === 'pkcs1') {
88
+ if (keyType !== undefined && keyType !== 'rsa') {
89
+ throw new Error(`Crypto incompatible key options: ${typeStr} can only be used for RSA keys`);
90
+ }
91
+ return _utils.KeyEncoding.kKeyEncodingPKCS1;
92
+ } else if (typeStr === 'spki' && isPublic !== false) {
93
+ return _utils.KeyEncoding.kKeyEncodingSPKI;
94
+ } else if (typeStr === 'pkcs8' && isPublic !== true) {
95
+ return _utils.KeyEncoding.kKeyEncodingPKCS8;
96
+ } else if (typeStr === 'sec1' && isPublic !== true) {
97
+ if (keyType !== undefined && keyType !== 'ec') {
98
+ throw new Error(`Incompatible key options ${typeStr} can only be used for EC keys`);
99
+ }
100
+ return _utils.KeyEncoding.kKeyEncodingSEC1;
101
+ }
102
+ throw new Error(`Invalid option ${optionName} - ${typeStr}`);
103
+ }
104
+ function parseKeyFormatAndType(enc, keyType, isPublic, objName) {
105
+ const {
106
+ format: formatStr,
107
+ type: typeStr
108
+ } = enc;
109
+ const isInput = keyType === undefined;
110
+ const format = parseKeyFormat(formatStr, isInput ? _utils.KFormatType.kKeyFormatPEM : undefined, option('format', objName));
111
+ const isRequired = (!isInput || format === _utils.KFormatType.kKeyFormatDER) && format !== _utils.KFormatType.kKeyFormatJWK;
112
+ const type = parseKeyType(typeStr, isRequired, keyType, isPublic, option('type', objName));
113
+ return {
114
+ format,
115
+ type
116
+ };
117
+ }
118
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_utils","require","isCryptoKey","obj","keyObject","undefined","exports","parsePublicKeyEncoding","enc","keyType","objName","parseKeyEncoding","parsePrivateKeyEncoding","isPublic","isInput","format","type","parseKeyFormatAndType","cipher","passphrase","encoding","Error","option","KFormatType","kKeyFormatDER","KeyEncoding","kKeyEncodingPKCS1","kKeyEncodingSEC1","encodingNames","isStringOrBuffer","binaryLikeToArrayBuffer","kKeyEncodingPKCS8","kKeyEncodingSPKI","name","parseKeyFormat","formatStr","defaultFormat","optionName","kKeyFormatPEM","kKeyFormatJWK","parseKeyType","typeStr","required","isRequired"],"sourceRoot":"../../../src","sources":["keys/utils.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=edKeyPair.nitro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["specs/edKeyPair.nitro.ts"],"mappings":"","ignoreList":[]}
@@ -7,6 +7,7 @@ exports.ab2str = ab2str;
7
7
  exports.abvToArrayBuffer = void 0;
8
8
  exports.binaryLikeToArrayBuffer = binaryLikeToArrayBuffer;
9
9
  exports.bufferLikeToArrayBuffer = bufferLikeToArrayBuffer;
10
+ exports.kEmptyObject = void 0;
10
11
  exports.toArrayBuffer = toArrayBuffer;
11
12
  var _reactNativeBuffer = require("@craftzdog/react-native-buffer");
12
13
  var _safeBuffer = require("safe-buffer");
@@ -93,4 +94,5 @@ encoding = 'utf-8') {
93
94
  function ab2str(buf, encoding = 'hex') {
94
95
  return _reactNativeBuffer.Buffer.from(buf).toString(encoding);
95
96
  }
97
+ const kEmptyObject = exports.kEmptyObject = Object.freeze(Object.create(null));
96
98
  //# sourceMappingURL=conversion.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeBuffer","require","_safeBuffer","abvToArrayBuffer","buffer","Buffer","isBuffer","ArrayBuffer","isView","exports","toArrayBuffer","buf","slice","byteOffset","byteLength","ab","length","view","Uint8Array","i","SBuffer","readUInt8","bufferLikeToArrayBuffer","binaryLikeToArrayBuffer","input","encoding","Error","from","ab2str","toString"],"sourceRoot":"../../../src","sources":["utils/conversion.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeBuffer","require","_safeBuffer","abvToArrayBuffer","buffer","Buffer","isBuffer","ArrayBuffer","isView","exports","toArrayBuffer","buf","slice","byteOffset","byteLength","ab","length","view","Uint8Array","i","SBuffer","readUInt8","bufferLikeToArrayBuffer","binaryLikeToArrayBuffer","input","encoding","Error","from","ab2str","toString","kEmptyObject","Object","freeze","create"],"sourceRoot":"../../../src","sources":["utils/conversion.ts"],"mappings":"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","ignoreList":[]}
@@ -47,4 +47,15 @@ Object.keys(_types).forEach(function (key) {
47
47
  }
48
48
  });
49
49
  });
50
+ var _validation = require("./validation");
51
+ Object.keys(_validation).forEach(function (key) {
52
+ if (key === "default" || key === "__esModule") return;
53
+ if (key in exports && exports[key] === _validation[key]) return;
54
+ Object.defineProperty(exports, key, {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _validation[key];
58
+ }
59
+ });
60
+ });
50
61
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_conversion","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_errors","_hashnames","_types"],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":";;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,WAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,WAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,WAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,OAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,OAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,OAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,OAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,UAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,UAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,UAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,UAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,MAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,MAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,MAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,MAAA,CAAAP,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["_conversion","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_errors","_hashnames","_types","_validation"],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":";;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,WAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,WAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,WAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,OAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,OAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,OAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,OAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,UAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,UAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,UAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,UAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,MAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,MAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,MAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,MAAA,CAAAP,GAAA;IAAA;EAAA;AAAA;AACA,IAAAQ,WAAA,GAAAZ,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAU,WAAA,EAAAT,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAQ,WAAA,CAAAR,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAI,WAAA,CAAAR,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.KeyType = exports.KeyEncoding = exports.KFormatType = void 0;
6
+ exports.KeyVariant = exports.KeyType = exports.KeyEncoding = exports.KFormatType = void 0;
7
7
  // @types/node
8
8
  // On node this value is defined on the native side, for now I'm just creating it here in JS
9
9
  // TODO(osp) move this into native side to make sure they always match
@@ -25,5 +25,16 @@ let KeyEncoding = exports.KeyEncoding = /*#__PURE__*/function (KeyEncoding) {
25
25
  KeyEncoding[KeyEncoding["kKeyEncodingSPKI"] = 2] = "kKeyEncodingSPKI";
26
26
  KeyEncoding[KeyEncoding["kKeyEncodingSEC1"] = 3] = "kKeyEncodingSEC1";
27
27
  return KeyEncoding;
28
+ }({}); // Note: removed CryptoKey class from this type (from 0.x) because Nitro doesn't
29
+ // handle custom JS objects. We might need to make it a JS object.
30
+ let KeyVariant = exports.KeyVariant = /*#__PURE__*/function (KeyVariant) {
31
+ KeyVariant[KeyVariant["RSA_SSA_PKCS1_v1_5"] = 0] = "RSA_SSA_PKCS1_v1_5";
32
+ KeyVariant[KeyVariant["RSA_PSS"] = 1] = "RSA_PSS";
33
+ KeyVariant[KeyVariant["RSA_OAEP"] = 2] = "RSA_OAEP";
34
+ KeyVariant[KeyVariant["DSA"] = 3] = "DSA";
35
+ KeyVariant[KeyVariant["EC"] = 4] = "EC";
36
+ KeyVariant[KeyVariant["NID"] = 5] = "NID";
37
+ KeyVariant[KeyVariant["DH"] = 6] = "DH";
38
+ return KeyVariant;
28
39
  }({});
29
40
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["KFormatType","exports","KeyType","KeyEncoding"],"sourceRoot":"../../../src","sources":["utils/types.ts"],"mappings":";;;;;;AAEyC;AAyGzC;AACA;AAAA,IACYA,WAAW,GAAAC,OAAA,CAAAD,WAAA,0BAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA,OAMvB;AAAA,IACYE,OAAO,GAAAD,OAAA,CAAAC,OAAA,0BAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAA,OAAPA,OAAO;AAAA;AAAA,IAMPC,WAAW,GAAAF,OAAA,CAAAE,WAAA,0BAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["KFormatType","exports","KeyType","KeyEncoding","KeyVariant"],"sourceRoot":"../../../src","sources":["utils/types.ts"],"mappings":";;;;;;AAEyC;AA6GzC;AACA;AAAA,IACYA,WAAW,GAAAC,OAAA,CAAAD,WAAA,0BAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA,OAMvB;AAAA,IACYE,OAAO,GAAAD,OAAA,CAAAC,OAAA,0BAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAA,OAAPA,OAAO;AAAA;AAAA,IAMPC,WAAW,GAAAF,OAAA,CAAAE,WAAA,0BAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA,OAwGvB;AACA;AAAA,IA2BYC,UAAU,GAAAH,OAAA,CAAAG,UAAA,0BAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isStringOrBuffer = isStringOrBuffer;
7
+ exports.validateFunction = validateFunction;
8
+ exports.validateObject = validateObject;
9
+ function validateFunction(f) {
10
+ return f !== null && typeof f === 'function';
11
+ }
12
+ function isStringOrBuffer(val) {
13
+ return typeof val === 'string' || ArrayBuffer.isView(val) || val instanceof ArrayBuffer;
14
+ }
15
+ function validateObject(value, name, options) {
16
+ const useDefaultOptions = options == null;
17
+ const allowArray = useDefaultOptions ? false : options.allowArray;
18
+ const allowFunction = useDefaultOptions ? false : options.allowFunction;
19
+ const nullable = useDefaultOptions ? false : options.nullable;
20
+ if (!nullable && value === null || !allowArray && Array.isArray(value) || typeof value !== 'object' && (!allowFunction || typeof value !== 'function')) {
21
+ throw new Error(`${name} is not a valid object $${value}`);
22
+ }
23
+ return true;
24
+ }
25
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["validateFunction","f","isStringOrBuffer","val","ArrayBuffer","isView","validateObject","value","name","options","useDefaultOptions","allowArray","allowFunction","nullable","Array","isArray","Error"],"sourceRoot":"../../../src","sources":["utils/validation.ts"],"mappings":";;;;;;;;AAAO,SAASA,gBAAgBA,CAACC,CAAU,EAAW;EACpD,OAAOA,CAAC,KAAK,IAAI,IAAI,OAAOA,CAAC,KAAK,UAAU;AAC9C;AAEO,SAASC,gBAAgBA,CAACC,GAAY,EAA+B;EAC1E,OACE,OAAOA,GAAG,KAAK,QAAQ,IACvBC,WAAW,CAACC,MAAM,CAACF,GAAG,CAAC,IACvBA,GAAG,YAAYC,WAAW;AAE9B;AAEO,SAASE,cAAcA,CAC5BC,KAAc,EACdC,IAAY,EACZC,OAIQ,EACI;EACZ,MAAMC,iBAAiB,GAAGD,OAAO,IAAI,IAAI;EACzC,MAAME,UAAU,GAAGD,iBAAiB,GAAG,KAAK,GAAGD,OAAO,CAACE,UAAU;EACjE,MAAMC,aAAa,GAAGF,iBAAiB,GAAG,KAAK,GAAGD,OAAO,CAACG,aAAa;EACvE,MAAMC,QAAQ,GAAGH,iBAAiB,GAAG,KAAK,GAAGD,OAAO,CAACI,QAAQ;EAC7D,IACG,CAACA,QAAQ,IAAIN,KAAK,KAAK,IAAI,IAC3B,CAACI,UAAU,IAAIG,KAAK,CAACC,OAAO,CAACR,KAAK,CAAE,IACpC,OAAOA,KAAK,KAAK,QAAQ,KACvB,CAACK,aAAa,IAAI,OAAOL,KAAK,KAAK,UAAU,CAAE,EAClD;IACA,MAAM,IAAIS,KAAK,CAAC,GAAGR,IAAI,2BAA2BD,KAAK,EAAE,CAAC;EAC5D;EACA,OAAO,IAAI;AACb","ignoreList":[]}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ import { NitroModules } from 'react-native-nitro-modules';
4
+ export class Ed {
5
+ constructor(type, config) {
6
+ this.type = type;
7
+ this.config = config;
8
+ this.native = NitroModules.createHybridObject('EdKeyPair');
9
+ this.native.setCurve(type);
10
+ }
11
+ async generateKeyPair() {
12
+ this.native.generateKeyPair(this.config.publicFormat || -1, this.config.publicType || -1, this.config.privateFormat || -1, this.config.privateType || -1, this.config.cipher, this.config.passphrase);
13
+ }
14
+ generateKeyPairSync() {
15
+ this.native.generateKeyPairSync(this.config.publicFormat || -1, this.config.publicType || -1, this.config.privateFormat || -1, this.config.privateType || -1, this.config.cipher, this.config.passphrase);
16
+ }
17
+ getPublicKey() {
18
+ return this.native.getPublicKey();
19
+ }
20
+ getPrivateKey() {
21
+ return this.native.getPrivateKey();
22
+ }
23
+ async sign(message, key) {
24
+ return key ? this.native.sign(message, key) : this.native.sign(message);
25
+ }
26
+ signSync(message, key) {
27
+ return key ? this.native.signSync(message, key) : this.native.signSync(message);
28
+ }
29
+ async verify(message, signature, key) {
30
+ return key ? this.native.verify(message, signature, key) : this.native.verify(message, signature);
31
+ }
32
+ verifySync(message, signature, key) {
33
+ return key ? this.native.verifySync(message, signature, key) : this.native.verifySync(message, signature);
34
+ }
35
+ }
36
+ //# sourceMappingURL=ed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NitroModules","Ed","constructor","type","config","native","createHybridObject","setCurve","generateKeyPair","publicFormat","publicType","privateFormat","privateType","cipher","passphrase","generateKeyPairSync","getPublicKey","getPrivateKey","sign","message","key","signSync","verify","signature","verifySync"],"sourceRoot":"../../src","sources":["ed.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AAIzD,OAAO,MAAMC,EAAE,CAAC;EAKdC,WAAWA,CAACC,IAAqB,EAAEC,MAAwB,EAAE;IAC3D,IAAI,CAACD,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACC,MAAM,GAAGL,YAAY,CAACM,kBAAkB,CAAY,WAAW,CAAC;IACrE,IAAI,CAACD,MAAM,CAACE,QAAQ,CAACJ,IAAI,CAAC;EAC5B;EAEA,MAAMK,eAAeA,CAAA,EAAkB;IACrC,IAAI,CAACH,MAAM,CAACG,eAAe,CACzB,IAAI,CAACJ,MAAM,CAACK,YAAY,IAAK,CAAC,CAAY,EAC1C,IAAI,CAACL,MAAM,CAACM,UAAU,IAAK,CAAC,CAAY,EACxC,IAAI,CAACN,MAAM,CAACO,aAAa,IAAK,CAAC,CAAY,EAC3C,IAAI,CAACP,MAAM,CAACQ,WAAW,IAAK,CAAC,CAAY,EACzC,IAAI,CAACR,MAAM,CAACS,MAAM,EAClB,IAAI,CAACT,MAAM,CAACU,UACd,CAAC;EACH;EAEAC,mBAAmBA,CAAA,EAAS;IAC1B,IAAI,CAACV,MAAM,CAACU,mBAAmB,CAC7B,IAAI,CAACX,MAAM,CAACK,YAAY,IAAK,CAAC,CAAY,EAC1C,IAAI,CAACL,MAAM,CAACM,UAAU,IAAK,CAAC,CAAY,EACxC,IAAI,CAACN,MAAM,CAACO,aAAa,IAAK,CAAC,CAAY,EAC3C,IAAI,CAACP,MAAM,CAACQ,WAAW,IAAK,CAAC,CAAY,EACzC,IAAI,CAACR,MAAM,CAACS,MAAM,EAClB,IAAI,CAACT,MAAM,CAACU,UACd,CAAC;EACH;EAEAE,YAAYA,CAAA,EAAgB;IAC1B,OAAO,IAAI,CAACX,MAAM,CAACW,YAAY,CAAC,CAAC;EACnC;EAEAC,aAAaA,CAAA,EAAgB;IAC3B,OAAO,IAAI,CAACZ,MAAM,CAACY,aAAa,CAAC,CAAC;EACpC;EAEA,MAAMC,IAAIA,CAACC,OAAoB,EAAEC,GAAiB,EAAwB;IACxE,OAAOA,GAAG,GAAG,IAAI,CAACf,MAAM,CAACa,IAAI,CAACC,OAAO,EAAEC,GAAG,CAAC,GAAG,IAAI,CAACf,MAAM,CAACa,IAAI,CAACC,OAAO,CAAC;EACzE;EAEAE,QAAQA,CAACF,OAAoB,EAAEC,GAAiB,EAAe;IAC7D,OAAOA,GAAG,GACN,IAAI,CAACf,MAAM,CAACgB,QAAQ,CAACF,OAAO,EAAEC,GAAG,CAAC,GAClC,IAAI,CAACf,MAAM,CAACgB,QAAQ,CAACF,OAAO,CAAC;EACnC;EAEA,MAAMG,MAAMA,CACVH,OAAoB,EACpBI,SAAsB,EACtBH,GAAiB,EACC;IAClB,OAAOA,GAAG,GACN,IAAI,CAACf,MAAM,CAACiB,MAAM,CAACH,OAAO,EAAEI,SAAS,EAAEH,GAAG,CAAC,GAC3C,IAAI,CAACf,MAAM,CAACiB,MAAM,CAACH,OAAO,EAAEI,SAAS,CAAC;EAC5C;EAEAC,UAAUA,CACRL,OAAoB,EACpBI,SAAsB,EACtBH,GAAiB,EACR;IACT,OAAOA,GAAG,GACN,IAAI,CAACf,MAAM,CAACmB,UAAU,CAACL,OAAO,EAAEI,SAAS,EAAEH,GAAG,CAAC,GAC/C,IAAI,CAACf,MAAM,CAACmB,UAAU,CAACL,OAAO,EAAEI,SAAS,CAAC;EAChD;AACF","ignoreList":[]}
@@ -4,6 +4,8 @@
4
4
  import { Buffer } from '@craftzdog/react-native-buffer';
5
5
 
6
6
  // API imports
7
+ import * as keys from './keys';
8
+ import * as ed from './ed';
7
9
  import * as pbkdf2 from './pbkdf2';
8
10
  import * as random from './random';
9
11
 
@@ -23,20 +25,17 @@ const QuickCrypto = {
23
25
  // createCipheriv,
24
26
  // createDecipher,
25
27
  // createDecipheriv,
26
- // createPublicKey,
27
- // createPrivateKey,
28
- // createSecretKey,
29
28
  // publicEncrypt,
30
29
  // publicDecrypt,
31
30
  // privateDecrypt,
32
31
  // generateKey,
33
- // generateKeyPair,
34
- // generateKeyPairSync,
35
32
  // generateKeySync,
36
33
  // createSign,
37
34
  // createVerify,
38
35
  // subtle,
39
36
  // constants,
37
+ ...keys,
38
+ ...ed,
40
39
  ...pbkdf2,
41
40
  ...random,
42
41
  // getCiphers,
@@ -62,6 +61,9 @@ global.process.nextTick = setImmediate;
62
61
 
63
62
  // exports
64
63
  export default QuickCrypto;
64
+ export * from './ed';
65
+ export * from './pbkdf2';
66
+ export * from './random';
65
67
  export * from './utils';
66
68
 
67
69
  // Additional exports for CommonJS compatibility
@@ -1 +1 @@
1
- {"version":3,"names":["Buffer","pbkdf2","random","utils","QuickCrypto","install","global","crypto","process","nextTick","setImmediate","module","exports","default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA,SAASA,MAAM,QAAQ,gCAAgC;;AAEvD;AACA,OAAO,KAAKC,MAAM,MAAM,UAAU;AAClC,OAAO,KAAKC,MAAM,MAAM,UAAU;;AAElC;AACA,OAAO,KAAKC,KAAK,MAAM,SAAS;;AAEhC;AACA;AACA;AACA;AACA,MAAMC,WAAW,GAAG;EAClB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,GAAGH,MAAM;EACT,GAAGC,MAAM;EACT;EACA;EACA;EACA,GAAGC;AACL,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAME,OAAO,GAAGA,CAAA,KAAM;EAC3B;EACAC,MAAM,CAACN,MAAM,GAAGA,MAAM;;EAEtB;EACAM,MAAM,CAACC,MAAM,GAAGH,WAAW;AAC7B,CAAC;;AAED;AACAE,MAAM,CAACE,OAAO,CAACC,QAAQ,GAAGC,YAAY;;AAEtC;AACA,eAAeN,WAAW;AAC1B,cAAc,SAAS;;AAEvB;AACAO,MAAM,CAACC,OAAO,GAAGR,WAAW;AAC5BO,MAAM,CAACC,OAAO,CAACC,OAAO,GAAGT,WAAW;AACpCO,MAAM,CAACC,OAAO,CAACP,OAAO,GAAGA,OAAO","ignoreList":[]}
1
+ {"version":3,"names":["Buffer","keys","ed","pbkdf2","random","utils","QuickCrypto","install","global","crypto","process","nextTick","setImmediate","module","exports","default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA,SAASA,MAAM,QAAQ,gCAAgC;;AAEvD;AACA,OAAO,KAAKC,IAAI,MAAM,QAAQ;AAC9B,OAAO,KAAKC,EAAE,MAAM,MAAM;AAC1B,OAAO,KAAKC,MAAM,MAAM,UAAU;AAClC,OAAO,KAAKC,MAAM,MAAM,UAAU;;AAElC;AACA,OAAO,KAAKC,KAAK,MAAM,SAAS;;AAEhC;AACA;AACA;AACA;AACA,MAAMC,WAAW,GAAG;EAClB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,GAAGL,IAAI;EACP,GAAGC,EAAE;EACL,GAAGC,MAAM;EACT,GAAGC,MAAM;EACT;EACA;EACA;EACA,GAAGC;AACL,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAME,OAAO,GAAGA,CAAA,KAAM;EAC3B;EACAC,MAAM,CAACR,MAAM,GAAGA,MAAM;;EAEtB;EACAQ,MAAM,CAACC,MAAM,GAAGH,WAAW;AAC7B,CAAC;;AAED;AACAE,MAAM,CAACE,OAAO,CAACC,QAAQ,GAAGC,YAAY;;AAEtC;AACA,eAAeN,WAAW;AAC1B,cAAc,MAAM;AACpB,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,SAAS;;AAEvB;AACAO,MAAM,CAACC,OAAO,GAAGR,WAAW;AAC5BO,MAAM,CAACC,OAAO,CAACC,OAAO,GAAGT,WAAW;AACpCO,MAAM,CAACC,OAAO,CAACP,OAAO,GAAGA,OAAO","ignoreList":[]}
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+
3
+ import { parsePrivateKeyEncoding, parsePublicKeyEncoding } from './utils';
4
+ export class CryptoKey {
5
+ constructor(keyObject, keyAlgorithm, keyUsages, keyExtractable) {
6
+ this.keyObject = keyObject;
7
+ this.keyAlgorithm = keyAlgorithm;
8
+ this.keyUsages = keyUsages;
9
+ this.keyExtractable = keyExtractable;
10
+ }
11
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
12
+ inspect(_depth, _options) {
13
+ throw new Error('CryptoKey.inspect is not implemented');
14
+ // if (depth < 0) return this;
15
+
16
+ // const opts = {
17
+ // ...options,
18
+ // depth: options.depth == null ? null : options.depth - 1,
19
+ // };
20
+
21
+ // return `CryptoKey ${inspect(
22
+ // {
23
+ // type: this.type,
24
+ // extractable: this.extractable,
25
+ // algorithm: this.algorithm,
26
+ // usages: this.usages,
27
+ // },
28
+ // opts
29
+ // )}`;
30
+ }
31
+ get type() {
32
+ // if (!(this instanceof CryptoKey)) throw new Error('Invalid CryptoKey');
33
+ return this.keyObject.type;
34
+ }
35
+ get extractable() {
36
+ return this.keyExtractable;
37
+ }
38
+ get algorithm() {
39
+ return this.keyAlgorithm;
40
+ }
41
+ get usages() {
42
+ return this.keyUsages;
43
+ }
44
+ }
45
+ export class KeyObject {
46
+ type = 'unknown';
47
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
48
+ export(_options) {
49
+ return new ArrayBuffer(0);
50
+ }
51
+ constructor(type, handle) {
52
+ if (type !== 'secret' && type !== 'public' && type !== 'private') throw new Error(`invalid KeyObject type: ${type}`);
53
+ this.handle = handle;
54
+ this.type = type;
55
+ }
56
+
57
+ // get type(): string {
58
+ // return this.type;
59
+ // }
60
+
61
+ // static from(key) {
62
+ // if (!isCryptoKey(key))
63
+ // throw new ERR_INVALID_ARG_TYPE('key', 'CryptoKey', key);
64
+ // return key[kKeyObject];
65
+ // }
66
+
67
+ // equals(otherKeyObject) {
68
+ // if (!isKeyObject(otherKeyObject)) {
69
+ // throw new ERR_INVALID_ARG_TYPE(
70
+ // 'otherKeyObject',
71
+ // 'KeyObject',
72
+ // otherKeyObject
73
+ // );
74
+ // }
75
+
76
+ // return (
77
+ // otherKeyObject.type === this.type &&
78
+ // this[kHandle].equals(otherKeyObject[kHandle])
79
+ // );
80
+ // }
81
+ }
82
+ export class SecretKeyObject extends KeyObject {
83
+ constructor(handle) {
84
+ super('secret', handle);
85
+ }
86
+
87
+ // get symmetricKeySize() {
88
+ // return this[kHandle].getSymmetricKeySize();
89
+ // }
90
+
91
+ export(options) {
92
+ if (options !== undefined) {
93
+ if (options.format === 'jwk') {
94
+ throw new Error('SecretKey export for jwk is not implemented');
95
+ // return this.handle.exportJwk({}, false);
96
+ }
97
+ }
98
+ return this.handle.exportKey();
99
+ }
100
+ }
101
+
102
+ // const kAsymmetricKeyType = Symbol('kAsymmetricKeyType');
103
+ // const kAsymmetricKeyDetails = Symbol('kAsymmetricKeyDetails');
104
+
105
+ // function normalizeKeyDetails(details = {}) {
106
+ // if (details.publicExponent !== undefined) {
107
+ // return {
108
+ // ...details,
109
+ // publicExponent: bigIntArrayToUnsignedBigInt(
110
+ // new Uint8Array(details.publicExponent)
111
+ // ),
112
+ // };
113
+ // }
114
+ // return details;
115
+ // }
116
+
117
+ export class AsymmetricKeyObject extends KeyObject {
118
+ constructor(type, handle) {
119
+ super(type, handle);
120
+ }
121
+ get asymmetricKeyType() {
122
+ if (!this._asymmetricKeyType) {
123
+ this._asymmetricKeyType = this.handle.getAsymmetricKeyType();
124
+ }
125
+ return this._asymmetricKeyType;
126
+ }
127
+
128
+ // get asymmetricKeyDetails() {
129
+ // switch (this._asymmetricKeyType) {
130
+ // case 'rsa':
131
+ // case 'rsa-pss':
132
+ // case 'dsa':
133
+ // case 'ec':
134
+ // return (
135
+ // this[kAsymmetricKeyDetails] ||
136
+ // (this[kAsymmetricKeyDetails] = normalizeKeyDetails(
137
+ // this[kHandle].keyDetail({})
138
+ // ))
139
+ // );
140
+ // default:
141
+ // return {};
142
+ // }
143
+ // }
144
+ }
145
+ export class PublicKeyObject extends AsymmetricKeyObject {
146
+ constructor(handle) {
147
+ super('public', handle);
148
+ }
149
+ export(options) {
150
+ if (options?.format === 'jwk') {
151
+ throw new Error('PublicKey export for jwk is not implemented');
152
+ // return this.handle.exportJwk({}, false);
153
+ }
154
+ const {
155
+ format,
156
+ type
157
+ } = parsePublicKeyEncoding(options, this.asymmetricKeyType);
158
+ return this.handle.exportKey(format, type);
159
+ }
160
+ }
161
+ export class PrivateKeyObject extends AsymmetricKeyObject {
162
+ constructor(handle) {
163
+ super('private', handle);
164
+ }
165
+ export(options) {
166
+ if (options?.format === 'jwk') {
167
+ if (options.passphrase !== undefined) {
168
+ throw new Error('jwk does not support encryption');
169
+ }
170
+ throw new Error('PrivateKey export for jwk is not implemented');
171
+ // return this.handle.exportJwk({}, false);
172
+ }
173
+ const {
174
+ format,
175
+ type,
176
+ cipher,
177
+ passphrase
178
+ } = parsePrivateKeyEncoding(options, this.asymmetricKeyType);
179
+ return this.handle.exportKey(format, type, cipher, passphrase);
180
+ }
181
+ }
182
+ //# sourceMappingURL=classes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["parsePrivateKeyEncoding","parsePublicKeyEncoding","CryptoKey","constructor","keyObject","keyAlgorithm","keyUsages","keyExtractable","inspect","_depth","_options","Error","type","extractable","algorithm","usages","KeyObject","export","ArrayBuffer","handle","SecretKeyObject","options","undefined","format","exportKey","AsymmetricKeyObject","asymmetricKeyType","_asymmetricKeyType","getAsymmetricKeyType","PublicKeyObject","PrivateKeyObject","passphrase","cipher"],"sourceRoot":"../../../src","sources":["keys/classes.ts"],"mappings":"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","ignoreList":[]}