react-native-quick-crypto 0.7.0-rc.6 → 0.7.0-rc.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.
- package/cpp/MGLKeyPair.cpp +31 -0
- package/cpp/MGLKeyPair.h +41 -0
- package/lib/commonjs/index.js +4 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/index.js +5 -0
- package/lib/module/index.js.map +1 -1
- package/package.json +2 -1
- package/src/index.ts +5 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#include "MGLKeyPair.h"
|
|
2
|
+
|
|
3
|
+
namespace margelo {
|
|
4
|
+
|
|
5
|
+
void KeyPairGen::GenerateKeyPair() {
|
|
6
|
+
CheckEntropy();
|
|
7
|
+
|
|
8
|
+
// Generate the key
|
|
9
|
+
EVP_PKEY* pkey = nullptr;
|
|
10
|
+
if (!EVP_PKEY_keygen(this->ctx.get(), &pkey)) {
|
|
11
|
+
throw std::runtime_error("Error generating key (RSA)");
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
this->key = ManagedEVPPKey(EVPKeyPointer(pkey));
|
|
15
|
+
|
|
16
|
+
std::shared_ptr<KeyObjectData> publicBuffer =
|
|
17
|
+
ManagedEVPPKey::ToEncodedPublicKey(std::move(this->key),
|
|
18
|
+
this->public_key_encoding);
|
|
19
|
+
std::shared_ptr<KeyObjectData> privateBuffer =
|
|
20
|
+
ManagedEVPPKey::ToEncodedPrivateKey(std::move(this->key),
|
|
21
|
+
this->private_key_encoding);
|
|
22
|
+
|
|
23
|
+
if (publicBuffer.isUndefined() || privateBuffer.isUndefined()) {
|
|
24
|
+
throw std::runtime_error("Failed to encode public and/or private key (RSA)");
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
this->publicKey = std::move(publicBuffer);
|
|
28
|
+
this->privateKey = std::move(privateBuffer);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
} // namespace margelo
|
package/cpp/MGLKeyPair.h
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#ifndef MGLKeyPair_h
|
|
2
|
+
#define MGLKeyPair_h
|
|
3
|
+
|
|
4
|
+
#include <jsi/jsi.h>
|
|
5
|
+
#include "MGLKeys.h"
|
|
6
|
+
|
|
7
|
+
#ifdef ANDROID
|
|
8
|
+
// #include "Utils/MGLUtils.h"
|
|
9
|
+
// #include "JSIUtils/MGLSmartHostObject.h"
|
|
10
|
+
#else
|
|
11
|
+
// #include "MGLUtils.h"
|
|
12
|
+
// #include "MGLSmartHostObject.h"
|
|
13
|
+
#endif
|
|
14
|
+
|
|
15
|
+
namespace margelo {
|
|
16
|
+
|
|
17
|
+
namespace jsi = facebook::jsi;
|
|
18
|
+
|
|
19
|
+
class KeyPairGen {
|
|
20
|
+
public:
|
|
21
|
+
// KeyPairGen() {};
|
|
22
|
+
virtual void PrepareConfig(jsi::Runtime& rt, const jsi::Value* args);
|
|
23
|
+
virtual void GenerateKeyPair();
|
|
24
|
+
inline static jsi::Value toJSI(jsi::Runtime& rt, std::shared_ptr<KeyObjectData> data) {
|
|
25
|
+
auto handle = KeyObjectHandle::Create(rt, data);
|
|
26
|
+
auto out = jsi::Object::createFromHostObject(rt, handle);
|
|
27
|
+
return jsi::Value(std::move(out));
|
|
28
|
+
};
|
|
29
|
+
protected:
|
|
30
|
+
KeyVariant variant;
|
|
31
|
+
ManagedEVPPKey key;
|
|
32
|
+
EVPKeyCtxPointer ctx;
|
|
33
|
+
PublicKeyEncodingConfig public_key_encoding;
|
|
34
|
+
PrivateKeyEncodingConfig private_key_encoding;
|
|
35
|
+
std::shared_ptr<KeyObjectData> publicKey;
|
|
36
|
+
std::shared_ptr<KeyObjectData> privateKey;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
} // namespace margelo
|
|
40
|
+
|
|
41
|
+
#endif /* MGLKeyPair_h */
|
package/lib/commonjs/index.js
CHANGED
|
@@ -54,5 +54,8 @@ const install = () => {
|
|
|
54
54
|
global.crypto = QuickCrypto;
|
|
55
55
|
};
|
|
56
56
|
exports.install = install;
|
|
57
|
-
var _default = exports.default = QuickCrypto;
|
|
57
|
+
var _default = exports.default = QuickCrypto; // Additional exports for CommonJS compatibility
|
|
58
|
+
module.exports = QuickCrypto;
|
|
59
|
+
module.exports.default = QuickCrypto;
|
|
60
|
+
module.exports.install = install;
|
|
58
61
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeBuffer","require","pbkdf2","_interopRequireWildcard","random","_Cipher","_sig","_Hmac","_Hash","_constants","_subtle","_Utils","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","QuickCrypto","createHmac","Hmac","Hash","createHash","createCipher","createCipheriv","createDecipher","createDecipheriv","publicEncrypt","publicDecrypt","privateDecrypt","generateKeyPair","generateKeyPairSync","createSign","createVerify","subtle","constants","getCiphers","getHashes","install","global","Buffer","crypto","exports","_default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,MAAA,GAAAD,uBAAA,CAAAF,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAWA,IAAAK,IAAA,GAAAL,OAAA;AACA,IAAAM,KAAA,GAAAN,OAAA;AACA,IAAAO,KAAA,GAAAP,OAAA;AACA,IAAAQ,UAAA,GAAAR,OAAA;AACA,IAAAS,OAAA,GAAAT,OAAA;AACA,IAAAU,MAAA,GAAAV,OAAA;AAAgD,SAAAW,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAV,wBAAAU,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAEhD;AACA;AACA;AACA,MAAMW,WAAW,GAAG;EAClBC,UAAU,EAAVA,gBAAU;EACVC,IAAI,EAAED,gBAAU;EAChBE,IAAI,EAAEC,gBAAU;EAChBA,UAAU,EAAVA,gBAAU;EACVC,YAAY,EAAZA,oBAAY;EACZC,cAAc,EAAdA,sBAAc;EACdC,cAAc,EAAdA,sBAAc;EACdC,gBAAgB,EAAhBA,wBAAgB;EAChBC,aAAa,EAAbA,qBAAa;EACbC,aAAa,EAAbA,qBAAa;EACbC,cAAc,EAAdA,sBAAc;EACdC,eAAe,EAAfA,uBAAe;EACfC,mBAAmB,EAAnBA,2BAAmB;EACnBC,UAAU,EAAVA,eAAU;EACVC,YAAY,EAAZA,iBAAY;EACZC,MAAM,EAANA,cAAM;EACNC,SAAS,EAATA,oBAAS;EACT,GAAG/C,MAAM;EACT,GAAGE,MAAM;EACT8C,UAAU,EAAVA,iBAAU;EACVC,SAAS,EAATA;AACF,CAAC;;AAED;AACA;AACA;AACO,MAAMC,OAAO,GAAGA,CAAA,KAAM;EAC3B;EACAC,MAAM,CAACC,MAAM,GAAGA,yBAAM;;EAEtB;EACAD,MAAM,CAACE,MAAM,GAAGvB,WAAW;AAC7B,CAAC;AAACwB,OAAA,CAAAJ,OAAA,GAAAA,OAAA;AAAA,IAAAK,QAAA,GAAAD,OAAA,CAAAtC,OAAA,GAEac,WAAW","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_reactNativeBuffer","require","pbkdf2","_interopRequireWildcard","random","_Cipher","_sig","_Hmac","_Hash","_constants","_subtle","_Utils","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","QuickCrypto","createHmac","Hmac","Hash","createHash","createCipher","createCipheriv","createDecipher","createDecipheriv","publicEncrypt","publicDecrypt","privateDecrypt","generateKeyPair","generateKeyPairSync","createSign","createVerify","subtle","constants","getCiphers","getHashes","install","global","Buffer","crypto","exports","_default","module"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -47,4 +47,9 @@ export const install = () => {
|
|
|
47
47
|
global.crypto = QuickCrypto;
|
|
48
48
|
};
|
|
49
49
|
export default QuickCrypto;
|
|
50
|
+
|
|
51
|
+
// Additional exports for CommonJS compatibility
|
|
52
|
+
module.exports = QuickCrypto;
|
|
53
|
+
module.exports.default = QuickCrypto;
|
|
54
|
+
module.exports.install = install;
|
|
50
55
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Buffer","pbkdf2","random","createCipher","createCipheriv","createDecipher","createDecipheriv","publicEncrypt","publicDecrypt","privateDecrypt","generateKeyPair","generateKeyPairSync","createSign","createVerify","createHmac","createHash","constants","subtle","getCiphers","getHashes","QuickCrypto","Hmac","Hash","install","global","crypto"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,SAASA,MAAM,QAAQ,gCAAgC;AACvD,OAAO,KAAKC,MAAM,MAAM,UAAU;AAClC,OAAO,KAAKC,MAAM,MAAM,UAAU;AAClC,SACEC,YAAY,EACZC,cAAc,EACdC,cAAc,EACdC,gBAAgB,EAChBC,aAAa,EACbC,aAAa,EACbC,cAAc,EACdC,eAAe,EACfC,mBAAmB,QACd,UAAU;AACjB,SAASC,UAAU,EAAEC,YAAY,QAAQ,OAAO;AAChD,SAASC,UAAU,QAAQ,QAAQ;AACnC,SAASC,UAAU,QAAQ,QAAQ;AACnC,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,MAAM,QAAQ,UAAU;AACjC,SAASC,UAAU,EAAEC,SAAS,QAAQ,SAAS;;AAE/C;AACA;AACA;AACA,MAAMC,WAAW,GAAG;EAClBN,UAAU;EACVO,IAAI,EAAEP,UAAU;EAChBQ,IAAI,EAAEP,UAAU;EAChBA,UAAU;EACVZ,YAAY;EACZC,cAAc;EACdC,cAAc;EACdC,gBAAgB;EAChBC,aAAa;EACbC,aAAa;EACbC,cAAc;EACdC,eAAe;EACfC,mBAAmB;EACnBC,UAAU;EACVC,YAAY;EACZI,MAAM;EACND,SAAS;EACT,GAAGf,MAAM;EACT,GAAGC,MAAM;EACTgB,UAAU;EACVC;AACF,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMI,OAAO,GAAGA,CAAA,KAAM;EAC3B;EACAC,MAAM,CAACxB,MAAM,GAAGA,MAAM;;EAEtB;EACAwB,MAAM,CAACC,MAAM,GAAGL,WAAW;AAC7B,CAAC;AAED,eAAeA,WAAW","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Buffer","pbkdf2","random","createCipher","createCipheriv","createDecipher","createDecipheriv","publicEncrypt","publicDecrypt","privateDecrypt","generateKeyPair","generateKeyPairSync","createSign","createVerify","createHmac","createHash","constants","subtle","getCiphers","getHashes","QuickCrypto","Hmac","Hash","install","global","crypto","module","exports","default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,SAASA,MAAM,QAAQ,gCAAgC;AACvD,OAAO,KAAKC,MAAM,MAAM,UAAU;AAClC,OAAO,KAAKC,MAAM,MAAM,UAAU;AAClC,SACEC,YAAY,EACZC,cAAc,EACdC,cAAc,EACdC,gBAAgB,EAChBC,aAAa,EACbC,aAAa,EACbC,cAAc,EACdC,eAAe,EACfC,mBAAmB,QACd,UAAU;AACjB,SAASC,UAAU,EAAEC,YAAY,QAAQ,OAAO;AAChD,SAASC,UAAU,QAAQ,QAAQ;AACnC,SAASC,UAAU,QAAQ,QAAQ;AACnC,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,MAAM,QAAQ,UAAU;AACjC,SAASC,UAAU,EAAEC,SAAS,QAAQ,SAAS;;AAE/C;AACA;AACA;AACA,MAAMC,WAAW,GAAG;EAClBN,UAAU;EACVO,IAAI,EAAEP,UAAU;EAChBQ,IAAI,EAAEP,UAAU;EAChBA,UAAU;EACVZ,YAAY;EACZC,cAAc;EACdC,cAAc;EACdC,gBAAgB;EAChBC,aAAa;EACbC,aAAa;EACbC,cAAc;EACdC,eAAe;EACfC,mBAAmB;EACnBC,UAAU;EACVC,YAAY;EACZI,MAAM;EACND,SAAS;EACT,GAAGf,MAAM;EACT,GAAGC,MAAM;EACTgB,UAAU;EACVC;AACF,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMI,OAAO,GAAGA,CAAA,KAAM;EAC3B;EACAC,MAAM,CAACxB,MAAM,GAAGA,MAAM;;EAEtB;EACAwB,MAAM,CAACC,MAAM,GAAGL,WAAW;AAC7B,CAAC;AAED,eAAeA,WAAW;;AAE1B;AACAM,MAAM,CAACC,OAAO,GAAGP,WAAW;AAC5BM,MAAM,CAACC,OAAO,CAACC,OAAO,GAAGR,WAAW;AACpCM,MAAM,CAACC,OAAO,CAACJ,OAAO,GAAGA,OAAO","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-quick-crypto",
|
|
3
|
-
"version": "0.7.0-rc.
|
|
3
|
+
"version": "0.7.0-rc.7",
|
|
4
4
|
"description": "A fast implementation of Node's `crypto` module written in C/C++ JSI",
|
|
5
|
+
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e",
|
|
5
6
|
"main": "lib/commonjs/index",
|
|
6
7
|
"module": "lib/module/index",
|
|
7
8
|
"types": "lib/typescript/index.d.ts",
|
package/src/index.ts
CHANGED