@openwallet-foundation/askar-react-native 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +38 -0
  3. package/android/CMakeLists.txt +60 -0
  4. package/android/build.gradle +261 -0
  5. package/android/cpp-adapter.cpp +36 -0
  6. package/android/src/main/AndroidManifest.xml +3 -0
  7. package/android/src/main/java/foundation/openwallet/askar/AskarModule.java +51 -0
  8. package/android/src/main/java/foundation/openwallet/askar/AskarPackage.java +23 -0
  9. package/android/src/main/java/id/animo/SecureEnvironment.java +5 -0
  10. package/askar.podspec +31 -0
  11. package/build/askar-react-native/src/NativeBindings.d.ts +144 -0
  12. package/build/askar-react-native/src/NativeBindings.js +3 -0
  13. package/build/askar-react-native/src/NativeBindings.js.map +1 -0
  14. package/build/askar-react-native/src/ReactNativeAskar.d.ts +100 -0
  15. package/build/askar-react-native/src/ReactNativeAskar.js +482 -0
  16. package/build/askar-react-native/src/ReactNativeAskar.js.map +1 -0
  17. package/build/askar-react-native/src/index.d.ts +1 -0
  18. package/build/askar-react-native/src/index.js +31 -0
  19. package/build/askar-react-native/src/index.js.map +1 -0
  20. package/build/askar-react-native/src/serialize.d.ts +14 -0
  21. package/build/askar-react-native/src/serialize.js +50 -0
  22. package/build/askar-react-native/src/serialize.js.map +1 -0
  23. package/build/askar-react-native/src/specs/NativeAskar.d.ts +5 -0
  24. package/build/askar-react-native/src/specs/NativeAskar.js +7 -0
  25. package/build/askar-react-native/src/specs/NativeAskar.js.map +1 -0
  26. package/build/askar-shared/src/askar/Askar.d.ts +437 -0
  27. package/build/askar-shared/src/askar/Askar.js +3 -0
  28. package/build/askar-shared/src/askar/Askar.js.map +1 -0
  29. package/build/askar-shared/src/askar/index.d.ts +2 -0
  30. package/build/askar-shared/src/askar/index.js +19 -0
  31. package/build/askar-shared/src/askar/index.js.map +1 -0
  32. package/build/askar-shared/src/askar/register.d.ts +5 -0
  33. package/build/askar-shared/src/askar/register.js +8 -0
  34. package/build/askar-shared/src/askar/register.js.map +1 -0
  35. package/build/askar-shared/src/crypto/AeadParams.d.ts +9 -0
  36. package/build/askar-shared/src/crypto/AeadParams.js +11 -0
  37. package/build/askar-shared/src/crypto/AeadParams.js.map +1 -0
  38. package/build/askar-shared/src/crypto/CryptoBox.d.ts +24 -0
  39. package/build/askar-shared/src/crypto/CryptoBox.js +23 -0
  40. package/build/askar-shared/src/crypto/CryptoBox.js.map +1 -0
  41. package/build/askar-shared/src/crypto/Ecdh1PU.d.ts +58 -0
  42. package/build/askar-shared/src/crypto/Ecdh1PU.js +77 -0
  43. package/build/askar-shared/src/crypto/Ecdh1PU.js.map +1 -0
  44. package/build/askar-shared/src/crypto/EcdhEs.d.ts +46 -0
  45. package/build/askar-shared/src/crypto/EcdhEs.js +64 -0
  46. package/build/askar-shared/src/crypto/EcdhEs.js.map +1 -0
  47. package/build/askar-shared/src/crypto/EncryptedBuffer.d.ts +20 -0
  48. package/build/askar-shared/src/crypto/EncryptedBuffer.js +36 -0
  49. package/build/askar-shared/src/crypto/EncryptedBuffer.js.map +1 -0
  50. package/build/askar-shared/src/crypto/Jwk.d.ts +18 -0
  51. package/build/askar-shared/src/crypto/Jwk.js +24 -0
  52. package/build/askar-shared/src/crypto/Jwk.js.map +1 -0
  53. package/build/askar-shared/src/crypto/Key.d.ts +73 -0
  54. package/build/askar-shared/src/crypto/Key.js +101 -0
  55. package/build/askar-shared/src/crypto/Key.js.map +1 -0
  56. package/build/askar-shared/src/crypto/handles.d.ts +46 -0
  57. package/build/askar-shared/src/crypto/handles.js +123 -0
  58. package/build/askar-shared/src/crypto/handles.js.map +1 -0
  59. package/build/askar-shared/src/crypto/index.d.ts +8 -0
  60. package/build/askar-shared/src/crypto/index.js +25 -0
  61. package/build/askar-shared/src/crypto/index.js.map +1 -0
  62. package/build/askar-shared/src/enums/EntryOperation.d.ts +5 -0
  63. package/build/askar-shared/src/enums/EntryOperation.js +10 -0
  64. package/build/askar-shared/src/enums/EntryOperation.js.map +1 -0
  65. package/build/askar-shared/src/enums/KeyAlgorithm.d.ts +20 -0
  66. package/build/askar-shared/src/enums/KeyAlgorithm.js +38 -0
  67. package/build/askar-shared/src/enums/KeyAlgorithm.js.map +1 -0
  68. package/build/askar-shared/src/enums/KeyBackend.d.ts +6 -0
  69. package/build/askar-shared/src/enums/KeyBackend.js +24 -0
  70. package/build/askar-shared/src/enums/KeyBackend.js.map +1 -0
  71. package/build/askar-shared/src/enums/KeyMethod.d.ts +4 -0
  72. package/build/askar-shared/src/enums/KeyMethod.js +9 -0
  73. package/build/askar-shared/src/enums/KeyMethod.js.map +1 -0
  74. package/build/askar-shared/src/enums/LogLevel.d.ts +9 -0
  75. package/build/askar-shared/src/enums/LogLevel.js +14 -0
  76. package/build/askar-shared/src/enums/LogLevel.js.map +1 -0
  77. package/build/askar-shared/src/enums/SignatureAlgorithm.d.ts +6 -0
  78. package/build/askar-shared/src/enums/SignatureAlgorithm.js +11 -0
  79. package/build/askar-shared/src/enums/SignatureAlgorithm.js.map +1 -0
  80. package/build/askar-shared/src/enums/index.d.ts +5 -0
  81. package/build/askar-shared/src/enums/index.js +22 -0
  82. package/build/askar-shared/src/enums/index.js.map +1 -0
  83. package/build/askar-shared/src/error.d.ts +12 -0
  84. package/build/askar-shared/src/error.js +21 -0
  85. package/build/askar-shared/src/error.js.map +1 -0
  86. package/build/askar-shared/src/index.d.ts +6 -0
  87. package/build/askar-shared/src/index.js +23 -0
  88. package/build/askar-shared/src/index.js.map +1 -0
  89. package/build/askar-shared/src/migration.d.ts +10 -0
  90. package/build/askar-shared/src/migration.js +11 -0
  91. package/build/askar-shared/src/migration.js.map +1 -0
  92. package/build/askar-shared/src/store/Entry.d.ts +21 -0
  93. package/build/askar-shared/src/store/Entry.js +38 -0
  94. package/build/askar-shared/src/store/Entry.js.map +1 -0
  95. package/build/askar-shared/src/store/EntryList.d.ts +17 -0
  96. package/build/askar-shared/src/store/EntryList.js +40 -0
  97. package/build/askar-shared/src/store/EntryList.js.map +1 -0
  98. package/build/askar-shared/src/store/KeyEntry.d.ts +23 -0
  99. package/build/askar-shared/src/store/KeyEntry.js +40 -0
  100. package/build/askar-shared/src/store/KeyEntry.js.map +1 -0
  101. package/build/askar-shared/src/store/KeyEntryList.d.ts +15 -0
  102. package/build/askar-shared/src/store/KeyEntryList.js +33 -0
  103. package/build/askar-shared/src/store/KeyEntryList.js.map +1 -0
  104. package/build/askar-shared/src/store/OpenSession.d.ts +14 -0
  105. package/build/askar-shared/src/store/OpenSession.js +27 -0
  106. package/build/askar-shared/src/store/OpenSession.js.map +1 -0
  107. package/build/askar-shared/src/store/Scan.d.ts +28 -0
  108. package/build/askar-shared/src/store/Scan.js +67 -0
  109. package/build/askar-shared/src/store/Scan.js.map +1 -0
  110. package/build/askar-shared/src/store/Session.d.ts +86 -0
  111. package/build/askar-shared/src/store/Session.js +182 -0
  112. package/build/askar-shared/src/store/Session.js.map +1 -0
  113. package/build/askar-shared/src/store/Store.d.ts +58 -0
  114. package/build/askar-shared/src/store/Store.js +87 -0
  115. package/build/askar-shared/src/store/Store.js.map +1 -0
  116. package/build/askar-shared/src/store/StoreKeyMethod.d.ts +11 -0
  117. package/build/askar-shared/src/store/StoreKeyMethod.js +20 -0
  118. package/build/askar-shared/src/store/StoreKeyMethod.js.map +1 -0
  119. package/build/askar-shared/src/store/index.d.ts +9 -0
  120. package/build/askar-shared/src/store/index.js +26 -0
  121. package/build/askar-shared/src/store/index.js.map +1 -0
  122. package/cpp/HostObject.cpp +198 -0
  123. package/cpp/HostObject.h +23 -0
  124. package/cpp/askar.cpp +1118 -0
  125. package/cpp/askar.h +111 -0
  126. package/cpp/include/libaries_askar.h +635 -0
  127. package/cpp/turboModuleUtility.cpp +598 -0
  128. package/cpp/turboModuleUtility.h +62 -0
  129. package/ios/Askar.h +5 -0
  130. package/ios/Askar.mm +33 -0
  131. package/package.json +59 -0
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Ecdh1PU = void 0;
4
+ const askar_1 = require("../askar");
5
+ const Key_1 = require("./Key");
6
+ class Ecdh1PU {
7
+ constructor({ apv, apu, algId }) {
8
+ this.algId = algId;
9
+ this.apu = apu;
10
+ this.apv = apv;
11
+ }
12
+ deriveKey({ encryptionAlgorithm, ephemeralKey, recipientKey, senderKey, receive, ccTag, }) {
13
+ return new Key_1.Key(askar_1.askar.keyDeriveEcdh1pu({
14
+ algId: this.algId,
15
+ receive,
16
+ apv: this.apv,
17
+ apu: this.apu,
18
+ algorithm: encryptionAlgorithm,
19
+ ephemeralKey: ephemeralKey,
20
+ recipientKey: recipientKey,
21
+ senderKey: senderKey,
22
+ ccTag,
23
+ }));
24
+ }
25
+ encryptDirect({ encryptionAlgorithm, recipientKey, ephemeralKey, senderKey, message, aad, nonce, }) {
26
+ const derived = this.deriveKey({
27
+ encryptionAlgorithm: encryptionAlgorithm,
28
+ ephemeralKey,
29
+ recipientKey,
30
+ senderKey,
31
+ receive: false,
32
+ });
33
+ const encryptedBuffer = derived.aeadEncrypt({ message, aad, nonce });
34
+ derived.handle.free();
35
+ return encryptedBuffer;
36
+ }
37
+ decryptDirect({ nonce, encryptionAlgorithm, recipientKey, ephemeralKey, senderKey, ciphertext, tag, aad, }) {
38
+ const derived = this.deriveKey({
39
+ encryptionAlgorithm: encryptionAlgorithm,
40
+ ephemeralKey,
41
+ recipientKey,
42
+ senderKey,
43
+ receive: true,
44
+ });
45
+ const encryptedBuffer = derived.aeadDecrypt({ tag, nonce, ciphertext, aad });
46
+ derived.handle.free();
47
+ return encryptedBuffer;
48
+ }
49
+ senderWrapKey({ keyWrappingAlgorithm, ephemeralKey, recipientKey, senderKey, cek, ccTag, }) {
50
+ const derived = this.deriveKey({
51
+ encryptionAlgorithm: keyWrappingAlgorithm,
52
+ ephemeralKey,
53
+ recipientKey,
54
+ senderKey,
55
+ receive: false,
56
+ ccTag,
57
+ });
58
+ const encryptedBuffer = derived.wrapKey({ other: cek });
59
+ derived.handle.free();
60
+ return encryptedBuffer;
61
+ }
62
+ receiverUnwrapKey({ keyWrappingAlgorithm, encryptionAlgorithm, recipientKey, ephemeralKey, senderKey, ciphertext, nonce, tag, ccTag, }) {
63
+ const derived = this.deriveKey({
64
+ encryptionAlgorithm: keyWrappingAlgorithm,
65
+ ephemeralKey,
66
+ recipientKey,
67
+ receive: true,
68
+ senderKey,
69
+ ccTag,
70
+ });
71
+ const encryptedBuffer = derived.unwrapKey({ tag, nonce, ciphertext, algorithm: encryptionAlgorithm });
72
+ derived.handle.free();
73
+ return encryptedBuffer;
74
+ }
75
+ }
76
+ exports.Ecdh1PU = Ecdh1PU;
77
+ //# sourceMappingURL=Ecdh1PU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Ecdh1PU.js","sourceRoot":"","sources":["../../../../../askar-shared/src/crypto/Ecdh1PU.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import type { KeyAlgorithm } from '../enums';
2
+ import { Jwk } from './Jwk';
3
+ import { Key } from './Key';
4
+ export declare class EcdhEs {
5
+ private algId;
6
+ private apu;
7
+ private apv;
8
+ constructor({ apv, apu, algId }: {
9
+ algId: Uint8Array;
10
+ apu: Uint8Array;
11
+ apv: Uint8Array;
12
+ });
13
+ private deriveKey;
14
+ encryptDirect({ encryptionAlgorithm, recipientKey, ephemeralKey, message, aad, nonce, }: {
15
+ encryptionAlgorithm: KeyAlgorithm;
16
+ ephemeralKey: Key | Jwk;
17
+ recipientKey: Key | Jwk;
18
+ message: Uint8Array;
19
+ aad?: Uint8Array;
20
+ nonce?: Uint8Array;
21
+ }): import("@openwallet-foundation/askar-react-native").EncryptedBuffer;
22
+ decryptDirect({ nonce, encryptionAlgorithm, recipientKey, ciphertext, ephemeralKey, tag, aad, }: {
23
+ encryptionAlgorithm: KeyAlgorithm;
24
+ ephemeralKey: Key | Jwk;
25
+ recipientKey: Key | Jwk;
26
+ ciphertext: Uint8Array;
27
+ nonce: Uint8Array;
28
+ tag: Uint8Array;
29
+ aad?: Uint8Array;
30
+ }): Uint8Array;
31
+ senderWrapKey({ keyWrappingAlgorithm, ephemeralKey, recipientKey, cek, }: {
32
+ keyWrappingAlgorithm: KeyAlgorithm;
33
+ ephemeralKey: Key;
34
+ recipientKey: Key;
35
+ cek: Key;
36
+ }): import("@openwallet-foundation/askar-react-native").EncryptedBuffer;
37
+ receiverUnwrapKey({ recipientKey, keyWrappingAlgorithm, ephemeralKey, encryptionAlgorithm, ciphertext, nonce, tag, }: {
38
+ keyWrappingAlgorithm: KeyAlgorithm;
39
+ encryptionAlgorithm: KeyAlgorithm;
40
+ ephemeralKey: Key;
41
+ recipientKey: Key;
42
+ ciphertext: Uint8Array;
43
+ nonce?: Uint8Array;
44
+ tag?: Uint8Array;
45
+ }): Key;
46
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EcdhEs = void 0;
4
+ const askar_1 = require("../askar");
5
+ const Jwk_1 = require("./Jwk");
6
+ const Key_1 = require("./Key");
7
+ class EcdhEs {
8
+ constructor({ apv, apu, algId }) {
9
+ this.algId = algId;
10
+ this.apu = apu;
11
+ this.apv = apv;
12
+ }
13
+ deriveKey({ encryptionAlgorithm, ephemeralKey, recipientKey, receive, }) {
14
+ return new Key_1.Key(askar_1.askar.keyDeriveEcdhEs({
15
+ algId: this.algId,
16
+ receive,
17
+ apv: this.apv,
18
+ apu: this.apu,
19
+ algorithm: encryptionAlgorithm,
20
+ ephemeralKey,
21
+ recipientKey,
22
+ }));
23
+ }
24
+ encryptDirect({ encryptionAlgorithm, recipientKey, ephemeralKey, message, aad, nonce, }) {
25
+ const eKey = ephemeralKey instanceof Jwk_1.Jwk ? Key_1.Key.fromJwk({ jwk: ephemeralKey }) : ephemeralKey;
26
+ const rKey = recipientKey instanceof Jwk_1.Jwk ? Key_1.Key.fromJwk({ jwk: recipientKey }) : recipientKey;
27
+ const derived = this.deriveKey({ encryptionAlgorithm, ephemeralKey: eKey, recipientKey: rKey, receive: false });
28
+ const encryptedBuffer = derived.aeadEncrypt({ message, aad, nonce });
29
+ derived.handle.free();
30
+ return encryptedBuffer;
31
+ }
32
+ decryptDirect({ nonce, encryptionAlgorithm, recipientKey, ciphertext, ephemeralKey, tag, aad, }) {
33
+ const eKey = ephemeralKey instanceof Jwk_1.Jwk ? Key_1.Key.fromJwk({ jwk: ephemeralKey }) : ephemeralKey;
34
+ const rKey = recipientKey instanceof Jwk_1.Jwk ? Key_1.Key.fromJwk({ jwk: recipientKey }) : recipientKey;
35
+ const derived = this.deriveKey({ encryptionAlgorithm, ephemeralKey: eKey, recipientKey: rKey, receive: true });
36
+ const encryptedBuffer = derived.aeadDecrypt({ tag, nonce, ciphertext, aad });
37
+ derived.handle.free();
38
+ return encryptedBuffer;
39
+ }
40
+ senderWrapKey({ keyWrappingAlgorithm, ephemeralKey, recipientKey, cek, }) {
41
+ const derived = this.deriveKey({
42
+ encryptionAlgorithm: keyWrappingAlgorithm,
43
+ ephemeralKey,
44
+ recipientKey,
45
+ receive: false,
46
+ });
47
+ const encryptedBuffer = derived.wrapKey({ other: cek });
48
+ derived.handle.free();
49
+ return encryptedBuffer;
50
+ }
51
+ receiverUnwrapKey({ recipientKey, keyWrappingAlgorithm, ephemeralKey, encryptionAlgorithm, ciphertext, nonce, tag, }) {
52
+ const derived = this.deriveKey({
53
+ encryptionAlgorithm: keyWrappingAlgorithm,
54
+ ephemeralKey,
55
+ recipientKey,
56
+ receive: true,
57
+ });
58
+ const encryptedBuffer = derived.unwrapKey({ tag, nonce, ciphertext, algorithm: encryptionAlgorithm });
59
+ derived.handle.free();
60
+ return encryptedBuffer;
61
+ }
62
+ }
63
+ exports.EcdhEs = EcdhEs;
64
+ //# sourceMappingURL=EcdhEs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EcdhEs.js","sourceRoot":"","sources":["../../../../../askar-shared/src/crypto/EcdhEs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export type EncryptedBufferOptions = {
2
+ buffer: Uint8Array;
3
+ tagPos: number;
4
+ noncePos: number;
5
+ };
6
+ export declare class EncryptedBuffer {
7
+ private buffer;
8
+ private tagPos;
9
+ private noncePos;
10
+ constructor({ noncePos, tagPos, buffer }: EncryptedBufferOptions);
11
+ get ciphertextWithTag(): Uint8Array;
12
+ get ciphertext(): Uint8Array;
13
+ get nonce(): Uint8Array;
14
+ get tag(): Uint8Array;
15
+ get parts(): {
16
+ ciphertext: Uint8Array;
17
+ tag: Uint8Array;
18
+ nonce: Uint8Array;
19
+ };
20
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EncryptedBuffer = void 0;
4
+ class EncryptedBuffer {
5
+ constructor({ noncePos, tagPos, buffer }) {
6
+ this.buffer = buffer;
7
+ this.tagPos = tagPos;
8
+ this.noncePos = noncePos;
9
+ }
10
+ get ciphertextWithTag() {
11
+ const p = this.noncePos;
12
+ return this.buffer.slice(0, p);
13
+ }
14
+ get ciphertext() {
15
+ const p = this.tagPos;
16
+ return this.buffer.slice(0, p);
17
+ }
18
+ get nonce() {
19
+ const p = this.noncePos;
20
+ return this.buffer.slice(p);
21
+ }
22
+ get tag() {
23
+ const p1 = this.tagPos;
24
+ const p2 = this.noncePos;
25
+ return this.buffer.slice(p1, p2);
26
+ }
27
+ get parts() {
28
+ return {
29
+ ciphertext: this.ciphertext,
30
+ tag: this.tag,
31
+ nonce: this.nonce,
32
+ };
33
+ }
34
+ }
35
+ exports.EncryptedBuffer = EncryptedBuffer;
36
+ //# sourceMappingURL=EncryptedBuffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EncryptedBuffer.js","sourceRoot":"","sources":["../../../../../askar-shared/src/crypto/EncryptedBuffer.ts"],"names":[],"mappings":";;;AAMA,MAAa,eAAe;IAK1B,YAAmB,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAA0B;QACrE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAED,IAAW,iBAAiB;QAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAA;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAChC,CAAC;IAED,IAAW,UAAU;QACnB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAA;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAChC,CAAC;IAED,IAAW,KAAK;QACd,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAA;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC7B,CAAC;IAED,IAAW,GAAG;QACZ,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QACtB,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAA;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAClC,CAAC;IAED,IAAW,KAAK;QACd,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAA;IACH,CAAC;CACF;AAvCD,0CAuCC"}
@@ -0,0 +1,18 @@
1
+ export type JwkProps = {
2
+ kty: string;
3
+ crv: string;
4
+ x: string;
5
+ d?: string;
6
+ y?: string;
7
+ };
8
+ export declare class Jwk {
9
+ kty: string;
10
+ crv: string;
11
+ x: string;
12
+ d?: string;
13
+ y?: string;
14
+ constructor({ kty, crv, x, d, y }: JwkProps);
15
+ static fromJson(jwk: JwkProps): Jwk;
16
+ static fromString(str: string): Jwk;
17
+ toUint8Array(): Uint8Array;
18
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Jwk = void 0;
4
+ const buffer_1 = require("buffer");
5
+ class Jwk {
6
+ constructor({ kty, crv, x, d, y }) {
7
+ this.kty = kty;
8
+ this.crv = crv;
9
+ this.x = x;
10
+ this.d = d;
11
+ this.y = y;
12
+ }
13
+ static fromJson(jwk) {
14
+ return new Jwk(jwk);
15
+ }
16
+ static fromString(str) {
17
+ return new Jwk(JSON.parse(str));
18
+ }
19
+ toUint8Array() {
20
+ return Uint8Array.from(buffer_1.Buffer.from(JSON.stringify(this)));
21
+ }
22
+ }
23
+ exports.Jwk = Jwk;
24
+ //# sourceMappingURL=Jwk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Jwk.js","sourceRoot":"","sources":["../../../../../askar-shared/src/crypto/Jwk.ts"],"names":[],"mappings":";;;AAAA,mCAA+B;AAU/B,MAAa,GAAG;IAOd,YAAmB,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAY;QAChD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QACV,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QACV,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;IACZ,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,GAAa;QAClC,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;IACrB,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,GAAW;QAClC,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAa,CAAC,CAAA;IAC7C,CAAC;IAEM,YAAY;QACjB,OAAO,UAAU,CAAC,IAAI,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC3D,CAAC;CACF;AA1BD,kBA0BC"}
@@ -0,0 +1,73 @@
1
+ import type { KeyAlgorithm, SignatureAlgorithm } from '../enums';
2
+ import type { KeyBackend } from '../enums';
3
+ import type { LocalKeyHandle } from './handles';
4
+ import { KeyMethod } from '../enums';
5
+ import { Jwk } from './Jwk';
6
+ export declare class Key {
7
+ private localKeyHandle;
8
+ constructor(handle: LocalKeyHandle);
9
+ static generate(algorithm: KeyAlgorithm, keyBackend?: KeyBackend, ephemeral?: boolean): Key;
10
+ static fromSeed({ method, algorithm, seed, }: {
11
+ algorithm: KeyAlgorithm;
12
+ seed: Uint8Array;
13
+ method?: KeyMethod;
14
+ }): Key;
15
+ static fromSecretBytes(options: {
16
+ algorithm: KeyAlgorithm;
17
+ secretKey: Uint8Array;
18
+ }): Key;
19
+ static fromPublicBytes(options: {
20
+ algorithm: KeyAlgorithm;
21
+ publicKey: Uint8Array;
22
+ }): Key;
23
+ static fromJwk(options: {
24
+ jwk: Jwk;
25
+ }): Key;
26
+ convertkey(options: {
27
+ algorithm: KeyAlgorithm;
28
+ }): Key;
29
+ keyFromKeyExchange({ algorithm, publicKey }: {
30
+ algorithm: KeyAlgorithm;
31
+ publicKey: Key;
32
+ }): Key;
33
+ get handle(): LocalKeyHandle;
34
+ get algorithm(): KeyAlgorithm;
35
+ get ephemeral(): boolean;
36
+ get publicBytes(): Uint8Array;
37
+ get secretBytes(): Uint8Array;
38
+ get jwkPublic(): Jwk;
39
+ get jwkSecret(): Jwk;
40
+ get jwkThumbprint(): string;
41
+ get aeadParams(): import("@openwallet-foundation/askar-react-native").AeadParams;
42
+ get aeadRandomNonce(): Uint8Array;
43
+ aeadEncrypt(options: {
44
+ message: Uint8Array;
45
+ nonce?: Uint8Array;
46
+ aad?: Uint8Array;
47
+ }): import("@openwallet-foundation/askar-react-native").EncryptedBuffer;
48
+ aeadDecrypt(options: {
49
+ ciphertext: Uint8Array;
50
+ nonce: Uint8Array;
51
+ tag?: Uint8Array;
52
+ aad?: Uint8Array;
53
+ }): Uint8Array;
54
+ signMessage(options: {
55
+ message: Uint8Array;
56
+ sigType?: SignatureAlgorithm;
57
+ }): Uint8Array;
58
+ verifySignature(options: {
59
+ message: Uint8Array;
60
+ signature: Uint8Array;
61
+ sigType?: SignatureAlgorithm;
62
+ }): boolean;
63
+ wrapKey({ other, nonce }: {
64
+ other: Key;
65
+ nonce?: Uint8Array;
66
+ }): import("@openwallet-foundation/askar-react-native").EncryptedBuffer;
67
+ unwrapKey(options: {
68
+ algorithm: KeyAlgorithm;
69
+ tag?: Uint8Array;
70
+ ciphertext: Uint8Array;
71
+ nonce?: Uint8Array;
72
+ }): Key;
73
+ }
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Key = void 0;
4
+ const buffer_1 = require("buffer");
5
+ const askar_1 = require("../askar");
6
+ const enums_1 = require("../enums");
7
+ const Jwk_1 = require("./Jwk");
8
+ class Key {
9
+ constructor(handle) {
10
+ this.localKeyHandle = handle;
11
+ }
12
+ static generate(algorithm, keyBackend, ephemeral = false) {
13
+ return new Key(askar_1.askar.keyGenerate({ algorithm, keyBackend, ephemeral }));
14
+ }
15
+ static fromSeed({ method = enums_1.KeyMethod.None, algorithm, seed, }) {
16
+ return new Key(askar_1.askar.keyFromSeed({ algorithm, method, seed }));
17
+ }
18
+ static fromSecretBytes(options) {
19
+ return new Key(askar_1.askar.keyFromSecretBytes(options));
20
+ }
21
+ static fromPublicBytes(options) {
22
+ return new Key(askar_1.askar.keyFromPublicBytes(options));
23
+ }
24
+ static fromJwk(options) {
25
+ return new Key(askar_1.askar.keyFromJwk(options));
26
+ }
27
+ convertkey(options) {
28
+ return new Key(askar_1.askar.keyConvert(Object.assign({ localKeyHandle: this.handle }, options)));
29
+ }
30
+ keyFromKeyExchange({ algorithm, publicKey }) {
31
+ return new Key(askar_1.askar.keyFromKeyExchange({
32
+ skHandle: this.handle,
33
+ pkHandle: publicKey.handle,
34
+ algorithm,
35
+ }));
36
+ }
37
+ get handle() {
38
+ return this.localKeyHandle;
39
+ }
40
+ get algorithm() {
41
+ const alg = askar_1.askar.keyGetAlgorithm({ localKeyHandle: this.handle });
42
+ return (0, enums_1.keyAlgorithmFromString)(alg);
43
+ }
44
+ get ephemeral() {
45
+ return Boolean(askar_1.askar.keyGetEphemeral({ localKeyHandle: this.handle }));
46
+ }
47
+ get publicBytes() {
48
+ return askar_1.askar.keyGetPublicBytes({ localKeyHandle: this.handle });
49
+ }
50
+ get secretBytes() {
51
+ return askar_1.askar.keyGetSecretBytes({ localKeyHandle: this.handle });
52
+ }
53
+ get jwkPublic() {
54
+ return Jwk_1.Jwk.fromString(askar_1.askar.keyGetJwkPublic({
55
+ localKeyHandle: this.handle,
56
+ algorithm: this.algorithm,
57
+ }));
58
+ }
59
+ get jwkSecret() {
60
+ const secretBytes = askar_1.askar.keyGetJwkSecret({
61
+ localKeyHandle: this.handle,
62
+ });
63
+ return Jwk_1.Jwk.fromString(buffer_1.Buffer.from(secretBytes).toString());
64
+ }
65
+ get jwkThumbprint() {
66
+ return askar_1.askar.keyGetJwkThumbprint({
67
+ localKeyHandle: this.handle,
68
+ algorithm: this.algorithm,
69
+ });
70
+ }
71
+ get aeadParams() {
72
+ return askar_1.askar.keyAeadGetParams({ localKeyHandle: this.handle });
73
+ }
74
+ get aeadRandomNonce() {
75
+ return askar_1.askar.keyAeadRandomNonce({ localKeyHandle: this.handle });
76
+ }
77
+ aeadEncrypt(options) {
78
+ return askar_1.askar.keyAeadEncrypt(Object.assign({ localKeyHandle: this.handle }, options));
79
+ }
80
+ aeadDecrypt(options) {
81
+ return askar_1.askar.keyAeadDecrypt(Object.assign({ localKeyHandle: this.handle }, options));
82
+ }
83
+ signMessage(options) {
84
+ return askar_1.askar.keySignMessage(Object.assign({ localKeyHandle: this.handle }, options));
85
+ }
86
+ verifySignature(options) {
87
+ return askar_1.askar.keyVerifySignature(Object.assign({ localKeyHandle: this.handle }, options));
88
+ }
89
+ wrapKey({ other, nonce }) {
90
+ return askar_1.askar.keyWrapKey({
91
+ localKeyHandle: this.handle,
92
+ other: other.handle,
93
+ nonce,
94
+ });
95
+ }
96
+ unwrapKey(options) {
97
+ return new Key(askar_1.askar.keyUnwrapKey(Object.assign({ localKeyHandle: this.handle }, options)));
98
+ }
99
+ }
100
+ exports.Key = Key;
101
+ //# sourceMappingURL=Key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Key.js","sourceRoot":"","sources":["../../../../../askar-shared/src/crypto/Key.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ type ArcHandleType = Uint8Array | string | null;
2
+ export declare class ArcHandle {
3
+ handle: Uint8Array | string;
4
+ constructor(handle: Uint8Array | string);
5
+ static fromHandle(handle: ArcHandleType): ArcHandle | null;
6
+ }
7
+ export declare class StoreHandle {
8
+ handle: number;
9
+ constructor(handle: number);
10
+ close(): Promise<void>;
11
+ static fromHandle(handle: number | null): StoreHandle;
12
+ }
13
+ export declare class ScanHandle {
14
+ handle: number;
15
+ constructor(handle: number);
16
+ free(): void;
17
+ static fromHandle(handle: number | null): ScanHandle;
18
+ }
19
+ export declare class SessionHandle {
20
+ handle: number;
21
+ constructor(handle: number);
22
+ close(commit: boolean): Promise<void>;
23
+ static fromHandle(handle: number | null): SessionHandle;
24
+ }
25
+ export declare class EntryListHandle extends ArcHandle {
26
+ getCategory(index: number): string;
27
+ getName(index: number): string;
28
+ getValue(index: number): Uint8Array;
29
+ getTags(index: number): string | null;
30
+ free(): void;
31
+ static fromHandle(handle: ArcHandleType): EntryListHandle | null;
32
+ }
33
+ export declare class KeyEntryListHandle extends ArcHandle {
34
+ getAlgorithm(index: number): string;
35
+ getName(index: number): string;
36
+ getTags(index: number): string | null;
37
+ getMetadata(index: number): string | null;
38
+ loadKey(index: number): LocalKeyHandle;
39
+ free(): void;
40
+ static fromHandle(handle: ArcHandleType): KeyEntryListHandle | null;
41
+ }
42
+ export declare class LocalKeyHandle extends ArcHandle {
43
+ free(): void;
44
+ static fromHandle(handle: ArcHandleType): LocalKeyHandle | null;
45
+ }
46
+ export {};
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LocalKeyHandle = exports.KeyEntryListHandle = exports.EntryListHandle = exports.SessionHandle = exports.ScanHandle = exports.StoreHandle = exports.ArcHandle = void 0;
4
+ const askar_1 = require("../askar");
5
+ const error_1 = require("../error");
6
+ class ArcHandle {
7
+ constructor(handle) {
8
+ if (handle === '0') {
9
+ throw error_1.AskarError.customError({
10
+ message: 'Invalid handle. This means that the function call succeeded but none was found.',
11
+ });
12
+ }
13
+ this.handle = handle;
14
+ }
15
+ static fromHandle(handle) {
16
+ return fromPointerHandle(ArcHandle, handle);
17
+ }
18
+ }
19
+ exports.ArcHandle = ArcHandle;
20
+ class StoreHandle {
21
+ constructor(handle) {
22
+ this.handle = handle;
23
+ }
24
+ async close() {
25
+ await askar_1.askar.storeClose({ storeHandle: this });
26
+ }
27
+ static fromHandle(handle) {
28
+ return fromSequenceHandle(StoreHandle, handle);
29
+ }
30
+ }
31
+ exports.StoreHandle = StoreHandle;
32
+ class ScanHandle {
33
+ constructor(handle) {
34
+ this.handle = handle;
35
+ }
36
+ free() {
37
+ askar_1.askar.scanFree({ scanHandle: this });
38
+ }
39
+ static fromHandle(handle) {
40
+ return fromSequenceHandle(ScanHandle, handle);
41
+ }
42
+ }
43
+ exports.ScanHandle = ScanHandle;
44
+ class SessionHandle {
45
+ constructor(handle) {
46
+ this.handle = handle;
47
+ }
48
+ async close(commit) {
49
+ await askar_1.askar.sessionClose({ commit, sessionHandle: this });
50
+ }
51
+ static fromHandle(handle) {
52
+ return fromSequenceHandle(SessionHandle, handle);
53
+ }
54
+ }
55
+ exports.SessionHandle = SessionHandle;
56
+ class EntryListHandle extends ArcHandle {
57
+ getCategory(index) {
58
+ return askar_1.askar.entryListGetCategory({ index, entryListHandle: this });
59
+ }
60
+ getName(index) {
61
+ return askar_1.askar.entryListGetName({ index, entryListHandle: this });
62
+ }
63
+ getValue(index) {
64
+ return askar_1.askar.entryListGetValue({ index, entryListHandle: this });
65
+ }
66
+ getTags(index) {
67
+ return askar_1.askar.entryListGetTags({ index, entryListHandle: this });
68
+ }
69
+ free() {
70
+ askar_1.askar.entryListFree({ entryListHandle: this });
71
+ }
72
+ static fromHandle(handle) {
73
+ return fromPointerHandle(EntryListHandle, handle);
74
+ }
75
+ }
76
+ exports.EntryListHandle = EntryListHandle;
77
+ class KeyEntryListHandle extends ArcHandle {
78
+ getAlgorithm(index) {
79
+ return askar_1.askar.keyEntryListGetAlgorithm({ index, keyEntryListHandle: this });
80
+ }
81
+ getName(index) {
82
+ return askar_1.askar.keyEntryListGetName({ index, keyEntryListHandle: this });
83
+ }
84
+ getTags(index) {
85
+ return askar_1.askar.keyEntryListGetTags({ index, keyEntryListHandle: this });
86
+ }
87
+ getMetadata(index) {
88
+ return askar_1.askar.keyEntryListGetMetadata({ index, keyEntryListHandle: this });
89
+ }
90
+ loadKey(index) {
91
+ return askar_1.askar.keyEntryListLoadLocal({ index, keyEntryListHandle: this });
92
+ }
93
+ free() {
94
+ askar_1.askar.keyEntryListFree({ keyEntryListHandle: this });
95
+ }
96
+ static fromHandle(handle) {
97
+ return fromPointerHandle(KeyEntryListHandle, handle);
98
+ }
99
+ }
100
+ exports.KeyEntryListHandle = KeyEntryListHandle;
101
+ class LocalKeyHandle extends ArcHandle {
102
+ free() {
103
+ askar_1.askar.keyFree({ localKeyHandle: this });
104
+ }
105
+ static fromHandle(handle) {
106
+ return fromPointerHandle(LocalKeyHandle, handle);
107
+ }
108
+ }
109
+ exports.LocalKeyHandle = LocalKeyHandle;
110
+ /**
111
+ * Instantiate an handle class based on a received handle. If the handle has a value
112
+ * of null, the handle class won't be instantiated but rather null will be returned.
113
+ */
114
+ function fromPointerHandle(HandleClass, handle) {
115
+ return (handle ? new HandleClass(handle) : null);
116
+ }
117
+ function fromSequenceHandle(HandleClass, handle) {
118
+ if (handle === null) {
119
+ throw error_1.AskarError.customError({ message: 'Invalid handle' });
120
+ }
121
+ return new HandleClass(handle);
122
+ }
123
+ //# sourceMappingURL=handles.js.map