@openwallet-foundation/askar-nodejs 0.2.5

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 (139) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +36 -0
  3. package/build/askar-nodejs/src/NodeJSAskar.d.ts +184 -0
  4. package/build/askar-nodejs/src/NodeJSAskar.js +625 -0
  5. package/build/askar-nodejs/src/NodeJSAskar.js.map +1 -0
  6. package/build/askar-nodejs/src/ffi/alloc.d.ts +12 -0
  7. package/build/askar-nodejs/src/ffi/alloc.js +27 -0
  8. package/build/askar-nodejs/src/ffi/alloc.js.map +1 -0
  9. package/build/askar-nodejs/src/ffi/callback.d.ts +15 -0
  10. package/build/askar-nodejs/src/ffi/callback.js +26 -0
  11. package/build/askar-nodejs/src/ffi/callback.js.map +1 -0
  12. package/build/askar-nodejs/src/ffi/conversion.d.ts +19 -0
  13. package/build/askar-nodejs/src/ffi/conversion.js +27 -0
  14. package/build/askar-nodejs/src/ffi/conversion.js.map +1 -0
  15. package/build/askar-nodejs/src/ffi/index.d.ts +6 -0
  16. package/build/askar-nodejs/src/ffi/index.js +23 -0
  17. package/build/askar-nodejs/src/ffi/index.js.map +1 -0
  18. package/build/askar-nodejs/src/ffi/primitives.d.ts +22 -0
  19. package/build/askar-nodejs/src/ffi/primitives.js +32 -0
  20. package/build/askar-nodejs/src/ffi/primitives.js.map +1 -0
  21. package/build/askar-nodejs/src/ffi/serialize.d.ts +11 -0
  22. package/build/askar-nodejs/src/ffi/serialize.js +54 -0
  23. package/build/askar-nodejs/src/ffi/serialize.js.map +1 -0
  24. package/build/askar-nodejs/src/ffi/structures.d.ts +51 -0
  25. package/build/askar-nodejs/src/ffi/structures.js +56 -0
  26. package/build/askar-nodejs/src/ffi/structures.js.map +1 -0
  27. package/build/askar-nodejs/src/index.d.ts +3 -0
  28. package/build/askar-nodejs/src/index.js +23 -0
  29. package/build/askar-nodejs/src/index.js.map +1 -0
  30. package/build/askar-nodejs/src/library/NativeBindingInterface.d.ts +25 -0
  31. package/build/askar-nodejs/src/library/NativeBindingInterface.js +3 -0
  32. package/build/askar-nodejs/src/library/NativeBindingInterface.js.map +1 -0
  33. package/build/askar-nodejs/src/library/bindings.d.ts +241 -0
  34. package/build/askar-nodejs/src/library/bindings.js +210 -0
  35. package/build/askar-nodejs/src/library/bindings.js.map +1 -0
  36. package/build/askar-nodejs/src/library/index.d.ts +3 -0
  37. package/build/askar-nodejs/src/library/index.js +20 -0
  38. package/build/askar-nodejs/src/library/index.js.map +1 -0
  39. package/build/askar-nodejs/src/library/register.d.ts +86 -0
  40. package/build/askar-nodejs/src/library/register.js +63 -0
  41. package/build/askar-nodejs/src/library/register.js.map +1 -0
  42. package/build/askar-shared/src/askar/Askar.d.ts +437 -0
  43. package/build/askar-shared/src/askar/Askar.js +3 -0
  44. package/build/askar-shared/src/askar/Askar.js.map +1 -0
  45. package/build/askar-shared/src/askar/index.d.ts +2 -0
  46. package/build/askar-shared/src/askar/index.js +19 -0
  47. package/build/askar-shared/src/askar/index.js.map +1 -0
  48. package/build/askar-shared/src/askar/register.d.ts +5 -0
  49. package/build/askar-shared/src/askar/register.js +8 -0
  50. package/build/askar-shared/src/askar/register.js.map +1 -0
  51. package/build/askar-shared/src/crypto/AeadParams.d.ts +9 -0
  52. package/build/askar-shared/src/crypto/AeadParams.js +11 -0
  53. package/build/askar-shared/src/crypto/AeadParams.js.map +1 -0
  54. package/build/askar-shared/src/crypto/CryptoBox.d.ts +24 -0
  55. package/build/askar-shared/src/crypto/CryptoBox.js +23 -0
  56. package/build/askar-shared/src/crypto/CryptoBox.js.map +1 -0
  57. package/build/askar-shared/src/crypto/Ecdh1PU.d.ts +58 -0
  58. package/build/askar-shared/src/crypto/Ecdh1PU.js +77 -0
  59. package/build/askar-shared/src/crypto/Ecdh1PU.js.map +1 -0
  60. package/build/askar-shared/src/crypto/EcdhEs.d.ts +46 -0
  61. package/build/askar-shared/src/crypto/EcdhEs.js +64 -0
  62. package/build/askar-shared/src/crypto/EcdhEs.js.map +1 -0
  63. package/build/askar-shared/src/crypto/EncryptedBuffer.d.ts +20 -0
  64. package/build/askar-shared/src/crypto/EncryptedBuffer.js +36 -0
  65. package/build/askar-shared/src/crypto/EncryptedBuffer.js.map +1 -0
  66. package/build/askar-shared/src/crypto/Jwk.d.ts +18 -0
  67. package/build/askar-shared/src/crypto/Jwk.js +24 -0
  68. package/build/askar-shared/src/crypto/Jwk.js.map +1 -0
  69. package/build/askar-shared/src/crypto/Key.d.ts +73 -0
  70. package/build/askar-shared/src/crypto/Key.js +101 -0
  71. package/build/askar-shared/src/crypto/Key.js.map +1 -0
  72. package/build/askar-shared/src/crypto/handles.d.ts +46 -0
  73. package/build/askar-shared/src/crypto/handles.js +123 -0
  74. package/build/askar-shared/src/crypto/handles.js.map +1 -0
  75. package/build/askar-shared/src/crypto/index.d.ts +8 -0
  76. package/build/askar-shared/src/crypto/index.js +25 -0
  77. package/build/askar-shared/src/crypto/index.js.map +1 -0
  78. package/build/askar-shared/src/enums/EntryOperation.d.ts +5 -0
  79. package/build/askar-shared/src/enums/EntryOperation.js +10 -0
  80. package/build/askar-shared/src/enums/EntryOperation.js.map +1 -0
  81. package/build/askar-shared/src/enums/KeyAlgorithm.d.ts +20 -0
  82. package/build/askar-shared/src/enums/KeyAlgorithm.js +38 -0
  83. package/build/askar-shared/src/enums/KeyAlgorithm.js.map +1 -0
  84. package/build/askar-shared/src/enums/KeyBackend.d.ts +6 -0
  85. package/build/askar-shared/src/enums/KeyBackend.js +24 -0
  86. package/build/askar-shared/src/enums/KeyBackend.js.map +1 -0
  87. package/build/askar-shared/src/enums/KeyMethod.d.ts +4 -0
  88. package/build/askar-shared/src/enums/KeyMethod.js +9 -0
  89. package/build/askar-shared/src/enums/KeyMethod.js.map +1 -0
  90. package/build/askar-shared/src/enums/LogLevel.d.ts +9 -0
  91. package/build/askar-shared/src/enums/LogLevel.js +14 -0
  92. package/build/askar-shared/src/enums/LogLevel.js.map +1 -0
  93. package/build/askar-shared/src/enums/SignatureAlgorithm.d.ts +6 -0
  94. package/build/askar-shared/src/enums/SignatureAlgorithm.js +11 -0
  95. package/build/askar-shared/src/enums/SignatureAlgorithm.js.map +1 -0
  96. package/build/askar-shared/src/enums/index.d.ts +5 -0
  97. package/build/askar-shared/src/enums/index.js +22 -0
  98. package/build/askar-shared/src/enums/index.js.map +1 -0
  99. package/build/askar-shared/src/error.d.ts +12 -0
  100. package/build/askar-shared/src/error.js +21 -0
  101. package/build/askar-shared/src/error.js.map +1 -0
  102. package/build/askar-shared/src/index.d.ts +6 -0
  103. package/build/askar-shared/src/index.js +23 -0
  104. package/build/askar-shared/src/index.js.map +1 -0
  105. package/build/askar-shared/src/migration.d.ts +10 -0
  106. package/build/askar-shared/src/migration.js +11 -0
  107. package/build/askar-shared/src/migration.js.map +1 -0
  108. package/build/askar-shared/src/store/Entry.d.ts +21 -0
  109. package/build/askar-shared/src/store/Entry.js +38 -0
  110. package/build/askar-shared/src/store/Entry.js.map +1 -0
  111. package/build/askar-shared/src/store/EntryList.d.ts +17 -0
  112. package/build/askar-shared/src/store/EntryList.js +40 -0
  113. package/build/askar-shared/src/store/EntryList.js.map +1 -0
  114. package/build/askar-shared/src/store/KeyEntry.d.ts +23 -0
  115. package/build/askar-shared/src/store/KeyEntry.js +40 -0
  116. package/build/askar-shared/src/store/KeyEntry.js.map +1 -0
  117. package/build/askar-shared/src/store/KeyEntryList.d.ts +15 -0
  118. package/build/askar-shared/src/store/KeyEntryList.js +33 -0
  119. package/build/askar-shared/src/store/KeyEntryList.js.map +1 -0
  120. package/build/askar-shared/src/store/OpenSession.d.ts +14 -0
  121. package/build/askar-shared/src/store/OpenSession.js +27 -0
  122. package/build/askar-shared/src/store/OpenSession.js.map +1 -0
  123. package/build/askar-shared/src/store/Scan.d.ts +28 -0
  124. package/build/askar-shared/src/store/Scan.js +67 -0
  125. package/build/askar-shared/src/store/Scan.js.map +1 -0
  126. package/build/askar-shared/src/store/Session.d.ts +86 -0
  127. package/build/askar-shared/src/store/Session.js +182 -0
  128. package/build/askar-shared/src/store/Session.js.map +1 -0
  129. package/build/askar-shared/src/store/Store.d.ts +58 -0
  130. package/build/askar-shared/src/store/Store.js +87 -0
  131. package/build/askar-shared/src/store/Store.js.map +1 -0
  132. package/build/askar-shared/src/store/StoreKeyMethod.d.ts +11 -0
  133. package/build/askar-shared/src/store/StoreKeyMethod.js +20 -0
  134. package/build/askar-shared/src/store/StoreKeyMethod.js.map +1 -0
  135. package/build/askar-shared/src/store/index.d.ts +9 -0
  136. package/build/askar-shared/src/store/index.js +26 -0
  137. package/build/askar-shared/src/store/index.js.map +1 -0
  138. package/package.json +55 -0
  139. package/scripts/install.js +15 -0
@@ -0,0 +1,58 @@
1
+ import type { KeyAlgorithm } from '../enums';
2
+ import { Key } from './Key';
3
+ export declare class Ecdh1PU {
4
+ private algId;
5
+ private apu;
6
+ private apv;
7
+ constructor({ apv, apu, algId }: {
8
+ algId: Uint8Array;
9
+ apu: Uint8Array;
10
+ apv: Uint8Array;
11
+ });
12
+ deriveKey({ encryptionAlgorithm, ephemeralKey, recipientKey, senderKey, receive, ccTag, }: {
13
+ encryptionAlgorithm: KeyAlgorithm;
14
+ ephemeralKey: Key;
15
+ recipientKey: Key;
16
+ senderKey: Key;
17
+ receive: boolean;
18
+ ccTag?: Uint8Array;
19
+ }): Key;
20
+ encryptDirect({ encryptionAlgorithm, recipientKey, ephemeralKey, senderKey, message, aad, nonce, }: {
21
+ encryptionAlgorithm: KeyAlgorithm;
22
+ ephemeralKey: Key;
23
+ recipientKey: Key;
24
+ senderKey: Key;
25
+ message: Uint8Array;
26
+ aad?: Uint8Array;
27
+ nonce?: Uint8Array;
28
+ }): import("@openwallet-foundation/askar-nodejs").EncryptedBuffer;
29
+ decryptDirect({ nonce, encryptionAlgorithm, recipientKey, ephemeralKey, senderKey, ciphertext, tag, aad, }: {
30
+ encryptionAlgorithm: KeyAlgorithm;
31
+ ephemeralKey: Key;
32
+ recipientKey: Key;
33
+ senderKey: Key;
34
+ ciphertext: Uint8Array;
35
+ nonce: Uint8Array;
36
+ tag: Uint8Array;
37
+ aad?: Uint8Array;
38
+ }): Uint8Array;
39
+ senderWrapKey({ keyWrappingAlgorithm, ephemeralKey, recipientKey, senderKey, cek, ccTag, }: {
40
+ keyWrappingAlgorithm: KeyAlgorithm;
41
+ ephemeralKey: Key;
42
+ recipientKey: Key;
43
+ senderKey: Key;
44
+ cek: Key;
45
+ ccTag: Uint8Array;
46
+ }): import("@openwallet-foundation/askar-nodejs").EncryptedBuffer;
47
+ receiverUnwrapKey({ keyWrappingAlgorithm, encryptionAlgorithm, recipientKey, ephemeralKey, senderKey, ciphertext, nonce, tag, ccTag, }: {
48
+ keyWrappingAlgorithm: KeyAlgorithm;
49
+ encryptionAlgorithm: KeyAlgorithm;
50
+ ephemeralKey: Key;
51
+ recipientKey: Key;
52
+ senderKey: Key;
53
+ ciphertext: Uint8Array;
54
+ nonce?: Uint8Array;
55
+ tag?: Uint8Array;
56
+ ccTag: Uint8Array;
57
+ }): Key;
58
+ }
@@ -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-nodejs").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-nodejs").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-nodejs").AeadParams;
42
+ get aeadRandomNonce(): Uint8Array;
43
+ aeadEncrypt(options: {
44
+ message: Uint8Array;
45
+ nonce?: Uint8Array;
46
+ aad?: Uint8Array;
47
+ }): import("@openwallet-foundation/askar-nodejs").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-nodejs").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":";;;AAIA,mCAA+B;AAE/B,oCAAgC;AAChC,oCAA4D;AAE5D,+BAA2B;AAE3B,MAAa,GAAG;IAGd,YAAmB,MAAsB;QACvC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAA;IAC9B,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,SAAuB,EAAE,UAAuB,EAAE,SAAS,GAAG,KAAK;QACxF,OAAO,IAAI,GAAG,CAAC,aAAK,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;IACzE,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,EACrB,MAAM,GAAG,iBAAS,CAAC,IAAI,EACvB,SAAS,EACT,IAAI,GAKL;QACC,OAAO,IAAI,GAAG,CAAC,aAAK,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IAChE,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,OAA2D;QACvF,OAAO,IAAI,GAAG,CAAC,aAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAA;IACnD,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,OAA2D;QACvF,OAAO,IAAI,GAAG,CAAC,aAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAA;IACnD,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,OAAqB;QACzC,OAAO,IAAI,GAAG,CAAC,aAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAA;IAC3C,CAAC;IAEM,UAAU,CAAC,OAAoC;QACpD,OAAO,IAAI,GAAG,CAAC,aAAK,CAAC,UAAU,iBAAG,cAAc,EAAE,IAAI,CAAC,MAAM,IAAK,OAAO,EAAG,CAAC,CAAA;IAC/E,CAAC;IAEM,kBAAkB,CAAC,EAAE,SAAS,EAAE,SAAS,EAA+C;QAC7F,OAAO,IAAI,GAAG,CACZ,aAAK,CAAC,kBAAkB,CAAC;YACvB,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,QAAQ,EAAE,SAAS,CAAC,MAAM;YAC1B,SAAS;SACV,CAAC,CACH,CAAA;IACH,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,cAAc,CAAA;IAC5B,CAAC;IAED,IAAW,SAAS;QAClB,MAAM,GAAG,GAAG,aAAK,CAAC,eAAe,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QAClE,OAAO,IAAA,8BAAsB,EAAC,GAAG,CAAC,CAAA;IACpC,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,OAAO,CAAC,aAAK,CAAC,eAAe,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IACxE,CAAC;IAED,IAAW,WAAW;QACpB,OAAO,aAAK,CAAC,iBAAiB,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;IACjE,CAAC;IAED,IAAW,WAAW;QACpB,OAAO,aAAK,CAAC,iBAAiB,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;IACjE,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,SAAG,CAAC,UAAU,CACnB,aAAK,CAAC,eAAe,CAAC;YACpB,cAAc,EAAE,IAAI,CAAC,MAAM;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CACH,CAAA;IACH,CAAC;IAED,IAAW,SAAS;QAClB,MAAM,WAAW,GAAG,aAAK,CAAC,eAAe,CAAC;YACxC,cAAc,EAAE,IAAI,CAAC,MAAM;SAC5B,CAAC,CAAA;QACF,OAAO,SAAG,CAAC,UAAU,CAAC,eAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC5D,CAAC;IAED,IAAW,aAAa;QACtB,OAAO,aAAK,CAAC,mBAAmB,CAAC;YAC/B,cAAc,EAAE,IAAI,CAAC,MAAM;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAA;IACJ,CAAC;IAED,IAAW,UAAU;QACnB,OAAO,aAAK,CAAC,gBAAgB,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;IAChE,CAAC;IAED,IAAW,eAAe;QACxB,OAAO,aAAK,CAAC,kBAAkB,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;IAClE,CAAC;IAEM,WAAW,CAAC,OAAsE;QACvF,OAAO,aAAK,CAAC,cAAc,iBACzB,cAAc,EAAE,IAAI,CAAC,MAAM,IACxB,OAAO,EACV,CAAA;IACJ,CAAC;IAEM,WAAW,CAAC,OAA0F;QAC3G,OAAO,aAAK,CAAC,cAAc,iBACzB,cAAc,EAAE,IAAI,CAAC,MAAM,IACxB,OAAO,EACV,CAAA;IACJ,CAAC;IAEM,WAAW,CAAC,OAA8D;QAC/E,OAAO,aAAK,CAAC,cAAc,iBACzB,cAAc,EAAE,IAAI,CAAC,MAAM,IACxB,OAAO,EACV,CAAA;IACJ,CAAC;IAEM,eAAe,CAAC,OAAqF;QAC1G,OAAO,aAAK,CAAC,kBAAkB,iBAC7B,cAAc,EAAE,IAAI,CAAC,MAAM,IACxB,OAAO,EACV,CAAA;IACJ,CAAC;IAEM,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAsC;QACjE,OAAO,aAAK,CAAC,UAAU,CAAC;YACtB,cAAc,EAAE,IAAI,CAAC,MAAM;YAC3B,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,KAAK;SACN,CAAC,CAAA;IACJ,CAAC;IAEM,SAAS,CAAC,OAAkG;QACjH,OAAO,IAAI,GAAG,CAAC,aAAK,CAAC,YAAY,iBAAG,cAAc,EAAE,IAAI,CAAC,MAAM,IAAK,OAAO,EAAG,CAAC,CAAA;IACjF,CAAC;CACF;AA5ID,kBA4IC"}
@@ -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 {};