@nmshd/crypto 1.0.8 → 2.0.1

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 (113) hide show
  1. package/dist/CoreBuffer.d.ts +0 -1
  2. package/dist/CoreBuffer.js +1 -4
  3. package/dist/CoreBuffer.js.map +1 -1
  4. package/dist/CryptoDerivation.js +2 -2
  5. package/dist/CryptoDerivation.js.map +1 -1
  6. package/dist/CryptoPrivateKey.d.ts +14 -17
  7. package/dist/CryptoPrivateKey.js +24 -39
  8. package/dist/CryptoPrivateKey.js.map +1 -1
  9. package/dist/CryptoPublicKey.d.ts +13 -16
  10. package/dist/CryptoPublicKey.js +22 -37
  11. package/dist/CryptoPublicKey.js.map +1 -1
  12. package/dist/CryptoSerializable.d.ts +5 -0
  13. package/dist/CryptoSerializable.js +15 -0
  14. package/dist/CryptoSerializable.js.map +1 -0
  15. package/dist/CryptoValidation.d.ts +4 -6
  16. package/dist/CryptoValidation.js +16 -29
  17. package/dist/CryptoValidation.js.map +1 -1
  18. package/dist/SodiumWrapper.js +5 -1
  19. package/dist/SodiumWrapper.js.map +1 -1
  20. package/dist/buildInformation.js +5 -5
  21. package/dist/encryption/CryptoCipher.d.ts +10 -11
  22. package/dist/encryption/CryptoCipher.js +62 -59
  23. package/dist/encryption/CryptoCipher.js.map +1 -1
  24. package/dist/encryption/CryptoEncryption.js +10 -12
  25. package/dist/encryption/CryptoEncryption.js.map +1 -1
  26. package/dist/encryption/CryptoSecretKey.d.ts +8 -9
  27. package/dist/encryption/CryptoSecretKey.js +36 -32
  28. package/dist/encryption/CryptoSecretKey.js.map +1 -1
  29. package/dist/exchange/CryptoExchange.d.ts +0 -2
  30. package/dist/exchange/CryptoExchange.js +5 -22
  31. package/dist/exchange/CryptoExchange.js.map +1 -1
  32. package/dist/exchange/CryptoExchangeKeypair.d.ts +10 -11
  33. package/dist/exchange/CryptoExchangeKeypair.js +33 -30
  34. package/dist/exchange/CryptoExchangeKeypair.js.map +1 -1
  35. package/dist/exchange/CryptoExchangePrivateKey.d.ts +8 -10
  36. package/dist/exchange/CryptoExchangePrivateKey.js +50 -31
  37. package/dist/exchange/CryptoExchangePrivateKey.js.map +1 -1
  38. package/dist/exchange/CryptoExchangePublicKey.d.ts +6 -7
  39. package/dist/exchange/CryptoExchangePublicKey.js +31 -32
  40. package/dist/exchange/CryptoExchangePublicKey.js.map +1 -1
  41. package/dist/exchange/CryptoExchangeSecrets.d.ts +10 -11
  42. package/dist/exchange/CryptoExchangeSecrets.js +33 -35
  43. package/dist/exchange/CryptoExchangeSecrets.js.map +1 -1
  44. package/dist/exchange/CryptoExchangeValidation.d.ts +7 -10
  45. package/dist/exchange/CryptoExchangeValidation.js +9 -36
  46. package/dist/exchange/CryptoExchangeValidation.js.map +1 -1
  47. package/dist/index.d.ts +1 -0
  48. package/dist/index.js +6 -1
  49. package/dist/index.js.map +1 -1
  50. package/dist/relationship/CryptoRelationshipPublicRequest.d.ts +8 -9
  51. package/dist/relationship/CryptoRelationshipPublicRequest.js +23 -42
  52. package/dist/relationship/CryptoRelationshipPublicRequest.js.map +1 -1
  53. package/dist/relationship/CryptoRelationshipPublicResponse.d.ts +8 -9
  54. package/dist/relationship/CryptoRelationshipPublicResponse.js +24 -38
  55. package/dist/relationship/CryptoRelationshipPublicResponse.js.map +1 -1
  56. package/dist/relationship/CryptoRelationshipRequestSecrets.d.ts +6 -7
  57. package/dist/relationship/CryptoRelationshipRequestSecrets.js +7 -10
  58. package/dist/relationship/CryptoRelationshipRequestSecrets.js.map +1 -1
  59. package/dist/relationship/CryptoRelationshipSecrets.d.ts +6 -7
  60. package/dist/relationship/CryptoRelationshipSecrets.js +8 -11
  61. package/dist/relationship/CryptoRelationshipSecrets.js.map +1 -1
  62. package/dist/signature/CryptoSignature.d.ts +12 -13
  63. package/dist/signature/CryptoSignature.js +39 -35
  64. package/dist/signature/CryptoSignature.js.map +1 -1
  65. package/dist/signature/CryptoSignatureAlgorithm.d.ts +5 -0
  66. package/dist/signature/CryptoSignatureAlgorithm.js +3 -0
  67. package/dist/signature/CryptoSignatureAlgorithm.js.map +1 -0
  68. package/dist/signature/CryptoSignatureKeypair.d.ts +10 -11
  69. package/dist/signature/CryptoSignatureKeypair.js +36 -38
  70. package/dist/signature/CryptoSignatureKeypair.js.map +1 -1
  71. package/dist/signature/CryptoSignaturePrivateKey.d.ts +10 -13
  72. package/dist/signature/CryptoSignaturePrivateKey.js +28 -37
  73. package/dist/signature/CryptoSignaturePrivateKey.js.map +1 -1
  74. package/dist/signature/CryptoSignaturePublicKey.d.ts +9 -12
  75. package/dist/signature/CryptoSignaturePublicKey.js +22 -44
  76. package/dist/signature/CryptoSignaturePublicKey.js.map +1 -1
  77. package/dist/signature/CryptoSignatureValidation.d.ts +10 -12
  78. package/dist/signature/CryptoSignatureValidation.js +13 -35
  79. package/dist/signature/CryptoSignatureValidation.js.map +1 -1
  80. package/dist/signature/CryptoSignatures.d.ts +1 -5
  81. package/dist/signature/CryptoSignatures.js +5 -5
  82. package/dist/signature/CryptoSignatures.js.map +1 -1
  83. package/dist/state/CryptoPrivateState.d.ts +12 -20
  84. package/dist/state/CryptoPrivateState.js +73 -77
  85. package/dist/state/CryptoPrivateState.js.map +1 -1
  86. package/dist/state/CryptoPrivateStateReceive.d.ts +4 -6
  87. package/dist/state/CryptoPrivateStateReceive.js +27 -39
  88. package/dist/state/CryptoPrivateStateReceive.js.map +1 -1
  89. package/dist/state/CryptoPrivateStateTransmit.d.ts +3 -4
  90. package/dist/state/CryptoPrivateStateTransmit.js +14 -40
  91. package/dist/state/CryptoPrivateStateTransmit.js.map +1 -1
  92. package/dist/state/CryptoPublicState.d.ts +11 -16
  93. package/dist/state/CryptoPublicState.js +44 -53
  94. package/dist/state/CryptoPublicState.js.map +1 -1
  95. package/dist/stream/CryptoStream.js +5 -2
  96. package/dist/stream/CryptoStream.js.map +1 -1
  97. package/dist/stream/CryptoStreamAddress.d.ts +7 -10
  98. package/dist/stream/CryptoStreamAddress.js +13 -29
  99. package/dist/stream/CryptoStreamAddress.js.map +1 -1
  100. package/dist/stream/CryptoStreamHeader.d.ts +9 -12
  101. package/dist/stream/CryptoStreamHeader.js +15 -18
  102. package/dist/stream/CryptoStreamHeader.js.map +1 -1
  103. package/dist/stream/CryptoStreamState.d.ts +6 -10
  104. package/dist/stream/CryptoStreamState.js +15 -33
  105. package/dist/stream/CryptoStreamState.js.map +1 -1
  106. package/lib-web/nmshd.crypto.js +795 -1023
  107. package/lib-web/nmshd.crypto.js.map +1 -1
  108. package/lib-web/nmshd.crypto.min.js +1 -1
  109. package/lib-web/nmshd.crypto.min.js.map +1 -1
  110. package/package.json +18 -18
  111. package/dist/CryptoSerializableAsync.d.ts +0 -5
  112. package/dist/CryptoSerializableAsync.js +0 -24
  113. package/dist/CryptoSerializableAsync.js.map +0 -1
@@ -5,71 +5,49 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var CryptoSignaturePublicKey_1;
12
8
  Object.defineProperty(exports, "__esModule", { value: true });
13
9
  exports.CryptoSignaturePublicKey = void 0;
14
10
  const ts_serval_1 = require("@js-soft/ts-serval");
15
11
  const CoreBuffer_1 = require("../CoreBuffer");
16
12
  const CryptoPublicKey_1 = require("../CryptoPublicKey");
17
13
  const CryptoSignatureValidation_1 = require("./CryptoSignatureValidation");
18
- let CryptoSignaturePublicKey = CryptoSignaturePublicKey_1 = class CryptoSignaturePublicKey extends CryptoPublicKey_1.CryptoPublicKey {
19
- constructor(algorithm, publicKey) {
20
- CryptoSignatureValidation_1.CryptoSignatureValidation.checkSignatureAlgorithm(algorithm);
21
- CryptoSignatureValidation_1.CryptoSignatureValidation.checkSignaturePublicKeyAsBuffer(publicKey, algorithm);
22
- super(algorithm, publicKey);
23
- this.algorithm = algorithm;
24
- this.publicKey = publicKey;
25
- }
14
+ let CryptoSignaturePublicKey = class CryptoSignaturePublicKey extends CryptoPublicKey_1.CryptoPublicKey {
26
15
  toJSON(verbose = true) {
27
- const obj = {
16
+ return {
28
17
  pub: this.publicKey.toBase64URL(),
29
- alg: this.algorithm
18
+ alg: this.algorithm,
19
+ "@type": verbose ? "CryptoSignaturePublicKey" : undefined
30
20
  };
31
- if (verbose) {
32
- obj["@type"] = "CryptoSignaturePublicKey";
33
- }
34
- return obj;
35
21
  }
36
22
  clear() {
37
23
  this.publicKey.clear();
38
24
  }
39
- serialize(verbose = true) {
40
- return JSON.stringify(this.toJSON(verbose));
41
- }
42
25
  toBase64(verbose = true) {
43
26
  return CoreBuffer_1.CoreBuffer.utf8_base64(this.serialize(verbose));
44
27
  }
45
28
  static from(value) {
46
- return Promise.resolve(new CryptoSignaturePublicKey_1(value.algorithm, CoreBuffer_1.CoreBuffer.from(value.publicKey)));
47
- }
48
- static async fromJSON(value) {
49
- let error;
50
- error = CryptoSignatureValidation_1.CryptoSignatureValidation.checkSignatureAlgorithm(value.alg);
51
- if (error)
52
- throw error;
53
- error = CryptoSignatureValidation_1.CryptoSignatureValidation.checkSignaturePublicKeyAsString(value.pub, value.alg, "publicKey");
54
- if (error)
55
- throw error;
56
- const buffer = CoreBuffer_1.CoreBuffer.fromBase64URL(value.pub);
57
- return await this.from({
58
- algorithm: value.alg,
59
- publicKey: buffer
60
- });
29
+ return this.fromAny(value);
30
+ }
31
+ static preFrom(value) {
32
+ if (value.pub) {
33
+ value = {
34
+ algorithm: value.alg,
35
+ publicKey: value.pub
36
+ };
37
+ }
38
+ CryptoSignatureValidation_1.CryptoSignatureValidation.checkSignatureAlgorithm(value.algorithm);
39
+ CryptoSignatureValidation_1.CryptoSignatureValidation.checkSignaturePublicKey(value.publicKey, value.algorithm, "publicKey");
40
+ return value;
61
41
  }
62
- static async fromBase64(value) {
63
- return await this.deserialize(CoreBuffer_1.CoreBuffer.base64_utf8(value));
42
+ static fromJSON(value) {
43
+ return this.fromAny(value);
64
44
  }
65
- static async deserialize(value) {
66
- const obj = JSON.parse(value);
67
- return await this.fromJSON(obj);
45
+ static fromBase64(value) {
46
+ return this.deserialize(CoreBuffer_1.CoreBuffer.base64_utf8(value));
68
47
  }
69
48
  };
70
- CryptoSignaturePublicKey = CryptoSignaturePublicKey_1 = __decorate([
71
- (0, ts_serval_1.type)("CryptoSignaturePublicKey"),
72
- __metadata("design:paramtypes", [Number, CoreBuffer_1.CoreBuffer])
49
+ CryptoSignaturePublicKey = __decorate([
50
+ (0, ts_serval_1.type)("CryptoSignaturePublicKey")
73
51
  ], CryptoSignaturePublicKey);
74
52
  exports.CryptoSignaturePublicKey = CryptoSignaturePublicKey;
75
53
  //# sourceMappingURL=CryptoSignaturePublicKey.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CryptoSignaturePublicKey.js","sourceRoot":"","sources":["../../src/signature/CryptoSignaturePublicKey.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,kDAA2E;AAC3E,8CAAoE;AACpE,wDAAqD;AAErD,2EAAwE;AAaxE,IAAa,wBAAwB,gCAArC,MAAa,wBAAyB,SAAQ,iCAAe;IAIzD,YAAmB,SAAmC,EAAE,SAAqB;QACzE,qDAAyB,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAC7D,qDAAyB,CAAC,+BAA+B,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAEhF,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAE5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAEM,MAAM,CAAC,OAAO,GAAG,IAAI;QACxB,MAAM,GAAG,GAAwC;YAC7C,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;YACjC,GAAG,EAAE,IAAI,CAAC,SAAS;SACtB,CAAC;QACF,IAAI,OAAO,EAAE;YACT,GAAG,CAAC,OAAO,CAAC,GAAG,0BAA0B,CAAC;SAC7C;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAEM,SAAS,CAAC,OAAO,GAAG,IAAI;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAChD,CAAC;IAEM,QAAQ,CAAC,OAAO,GAAG,IAAI;QAC1B,OAAO,uBAAU,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,KAA2D;QAC1E,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,0BAAwB,CAAC,KAAK,CAAC,SAAS,EAAE,uBAAU,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC5G,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAA0C;QACnE,IAAI,KAAK,CAAC;QACV,KAAK,GAAG,qDAAyB,CAAC,uBAAuB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrE,IAAI,KAAK;YAAE,MAAM,KAAK,CAAC;QAEvB,KAAK,GAAG,qDAAyB,CAAC,+BAA+B,CAC7D,KAAK,CAAC,GAAG,EACT,KAAK,CAAC,GAA+B,EACrC,WAAW,CACd,CAAC;QACF,IAAI,KAAK;YAAE,MAAM,KAAK,CAAC;QAEvB,MAAM,MAAM,GAAG,uBAAU,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnD,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC;YACnB,SAAS,EAAE,KAAK,CAAC,GAA+B;YAChD,SAAS,EAAE,MAAM;SACpB,CAAC,CAAC;IACP,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAa;QACxC,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,uBAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IACjE,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,KAAa;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9B,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;CACJ,CAAA;AApEY,wBAAwB;IADpC,IAAA,gBAAI,EAAC,0BAA0B,CAAC;6CAKsC,uBAAU;GAJpE,wBAAwB,CAoEpC;AApEY,4DAAwB"}
1
+ {"version":3,"file":"CryptoSignaturePublicKey.js","sourceRoot":"","sources":["../../src/signature/CryptoSignaturePublicKey.ts"],"names":[],"mappings":";;;;;;;;;AAAA,kDAAsE;AACtE,8CAAoE;AACpE,wDAAqD;AAErD,2EAAwE;AAaxE,IAAa,wBAAwB,GAArC,MAAa,wBAAyB,SAAQ,iCAAe;IAGzC,MAAM,CAAC,OAAO,GAAG,IAAI;QACjC,OAAO;YACH,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;YACjC,GAAG,EAAE,IAAI,CAAC,SAAS;YACnB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,SAAS;SAC5D,CAAC;IACN,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAEe,QAAQ,CAAC,OAAO,GAAG,IAAI;QACnC,OAAO,uBAAU,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;IAEM,MAAM,CAAU,IAAI,CAAC,KAA2D;QACnF,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAEM,MAAM,CAAU,OAAO,CAAC,KAAU;QACrC,IAAI,KAAK,CAAC,GAAG,EAAE;YACX,KAAK,GAAG;gBACJ,SAAS,EAAE,KAAK,CAAC,GAAG;gBACpB,SAAS,EAAE,KAAK,CAAC,GAAG;aACvB,CAAC;SACL;QAED,qDAAyB,CAAC,uBAAuB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAEnE,qDAAyB,CAAC,uBAAuB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAEjG,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,KAA0C;QAC7D,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAEM,MAAM,CAAU,UAAU,CAAC,KAAa;QAC3C,OAAO,IAAI,CAAC,WAAW,CAAC,uBAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3D,CAAC;CACJ,CAAA;AA7CY,wBAAwB;IADpC,IAAA,gBAAI,EAAC,0BAA0B,CAAC;GACpB,wBAAwB,CA6CpC;AA7CY,4DAAwB"}
@@ -1,27 +1,25 @@
1
1
  import { CoreBuffer } from "../CoreBuffer";
2
2
  import { CryptoError } from "../CryptoError";
3
3
  import { CryptoValidation } from "../CryptoValidation";
4
- import { CryptoSignaturePrivateKey } from "./CryptoSignaturePrivateKey";
5
- import { CryptoSignaturePublicKey } from "./CryptoSignaturePublicKey";
6
- import { CryptoSignatureAlgorithm } from "./CryptoSignatures";
4
+ import { CryptoSignatureAlgorithm } from "./CryptoSignatureAlgorithm";
7
5
  export declare class CryptoSignatureValidation extends CryptoValidation {
8
- static readonly PRIVATE_KEY_MIN_BYTES: number;
9
- static readonly PRIVATE_KEY_MAX_BYTES: number;
10
- static readonly PUBLIC_KEY_MIN_BYTES: number;
11
- static readonly PUBLIC_KEY_MAX_BYTES: number;
12
- static readonly SIGNATURE_MIN_BYTES: number;
13
- static readonly SIGNATURE_MAX_BYTES: number;
6
+ static readonly PRIVATE_KEY_MIN_BYTES = 20;
7
+ static readonly PRIVATE_KEY_MAX_BYTES = 80;
8
+ static readonly PUBLIC_KEY_MIN_BYTES = 20;
9
+ static readonly PUBLIC_KEY_MAX_BYTES = 80;
10
+ static readonly SIGNATURE_MIN_BYTES = 20;
11
+ static readonly SIGNATURE_MAX_BYTES = 100;
14
12
  static checkSignatureAlgorithm(algorithm: number, throwError?: boolean): CryptoError | undefined;
15
13
  static checkSignaturePrivateKeyAsString(key: string, propertyName?: string, throwError?: boolean): CryptoError | undefined;
16
14
  static checkSignaturePrivateKeyAsBuffer(buffer: CoreBuffer, propertyName?: string, throwError?: boolean): CryptoError | undefined;
17
- static checkSignaturePrivateKey(privateKey: CryptoSignaturePrivateKey, throwError?: boolean): CryptoError | undefined;
15
+ static checkSignaturePrivateKey(privateKey: string | CoreBuffer, propertyName?: string, throwError?: boolean): CryptoError | undefined;
18
16
  static checkSignaturePublicKeyAsString(key: string, algorithm: CryptoSignatureAlgorithm, propertyName?: string, throwError?: boolean): CryptoError | undefined;
19
17
  static checkSignaturePublicKeyAsBuffer(buffer: CoreBuffer, algorithm: CryptoSignatureAlgorithm, propertyName?: string, throwError?: boolean): CryptoError | undefined;
20
- static checkSignaturePublicKey(publicKey: CryptoSignaturePublicKey, throwError?: boolean): CryptoError | undefined;
18
+ static checkSignaturePublicKey(publicKey: string | CoreBuffer, algorithm: CryptoSignatureAlgorithm, propertyName?: string, throwError?: boolean): CryptoError | undefined;
21
19
  static checkSignatureAsString(signature: string, throwError?: boolean): CryptoError | undefined;
22
20
  static checkSignatureAsBuffer(signature: CoreBuffer, throwError?: boolean): CryptoError | undefined;
21
+ static checkSignature(signature: string | CoreBuffer, throwError?: boolean): CryptoError | undefined;
23
22
  static checkSignaturePublicKeyId(keyId: string, throwError?: boolean): CryptoError | undefined;
24
23
  static checkSignatureKeyId(keyId: string, throwError?: boolean): CryptoError | undefined;
25
24
  static checkSignatureId(id: string, throwError?: boolean): CryptoError | undefined;
26
- static checkSignatureKeypair(privateKey: CryptoSignaturePrivateKey, publicKey: CryptoSignaturePublicKey, throwError?: boolean): CryptoError | undefined;
27
25
  }
@@ -4,8 +4,6 @@ exports.CryptoSignatureValidation = void 0;
4
4
  const CryptoError_1 = require("../CryptoError");
5
5
  const CryptoErrorCode_1 = require("../CryptoErrorCode");
6
6
  const CryptoValidation_1 = require("../CryptoValidation");
7
- const CryptoSignaturePrivateKey_1 = require("./CryptoSignaturePrivateKey");
8
- const CryptoSignaturePublicKey_1 = require("./CryptoSignaturePublicKey");
9
7
  class CryptoSignatureValidation extends CryptoValidation_1.CryptoValidation {
10
8
  static checkSignatureAlgorithm(algorithm, throwError = true) {
11
9
  let error;
@@ -28,14 +26,11 @@ class CryptoSignatureValidation extends CryptoValidation_1.CryptoValidation {
28
26
  static checkSignaturePrivateKeyAsBuffer(buffer, propertyName = "privateKey", throwError = true) {
29
27
  return super.checkBuffer(buffer, this.PRIVATE_KEY_MIN_BYTES, this.PRIVATE_KEY_MAX_BYTES, propertyName, throwError);
30
28
  }
31
- static checkSignaturePrivateKey(privateKey, throwError = true) {
32
- let error;
33
- if (!(privateKey instanceof CryptoSignaturePrivateKey_1.CryptoSignaturePrivateKey)) {
34
- error = new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.SignatureWrongPrivateKey, "PrivateKey must be of type CryptoSignaturePrivateKey.");
29
+ static checkSignaturePrivateKey(privateKey, propertyName = "privateKey", throwError = true) {
30
+ if (typeof privateKey === "string") {
31
+ return this.checkSignaturePrivateKeyAsString(privateKey, propertyName, throwError);
35
32
  }
36
- if (error && throwError)
37
- throw error;
38
- return error;
33
+ return this.checkSignaturePrivateKeyAsBuffer(privateKey, propertyName, throwError);
39
34
  }
40
35
  static checkSignaturePublicKeyAsString(key, algorithm, propertyName = "publicKey", throwError = true) {
41
36
  return super.checkSerializedBuffer(key, this.PUBLIC_KEY_MIN_BYTES, this.PUBLIC_KEY_MAX_BYTES, propertyName, throwError);
@@ -43,14 +38,11 @@ class CryptoSignatureValidation extends CryptoValidation_1.CryptoValidation {
43
38
  static checkSignaturePublicKeyAsBuffer(buffer, algorithm, propertyName = "publicKey", throwError = true) {
44
39
  return super.checkBuffer(buffer, this.PUBLIC_KEY_MIN_BYTES, this.PUBLIC_KEY_MAX_BYTES, propertyName, throwError);
45
40
  }
46
- static checkSignaturePublicKey(publicKey, throwError = true) {
47
- let error;
48
- if (!(publicKey instanceof CryptoSignaturePublicKey_1.CryptoSignaturePublicKey)) {
49
- error = new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.SignatureWrongPublicKey, "Public key must be of type CryptoSignaturePublicKey.");
41
+ static checkSignaturePublicKey(publicKey, algorithm, propertyName = "publicKey", throwError = true) {
42
+ if (typeof publicKey === "string") {
43
+ return this.checkSignaturePublicKeyAsString(publicKey, algorithm, propertyName, throwError);
50
44
  }
51
- if (error && throwError)
52
- throw error;
53
- return error;
45
+ return this.checkSignaturePublicKeyAsBuffer(publicKey, algorithm, propertyName, throwError);
54
46
  }
55
47
  static checkSignatureAsString(signature, throwError = true) {
56
48
  return this.checkSerializedBuffer(signature, this.SIGNATURE_MIN_BYTES, this.SIGNATURE_MAX_BYTES, "signature", throwError);
@@ -58,6 +50,11 @@ class CryptoSignatureValidation extends CryptoValidation_1.CryptoValidation {
58
50
  static checkSignatureAsBuffer(signature, throwError = true) {
59
51
  return this.checkBuffer(signature, this.SIGNATURE_MIN_BYTES, this.SIGNATURE_MAX_BYTES, "signature", throwError);
60
52
  }
53
+ static checkSignature(signature, throwError = true) {
54
+ if (typeof signature === "string")
55
+ return this.checkSignatureAsString(signature, throwError);
56
+ return this.checkSignatureAsBuffer(signature, throwError);
57
+ }
61
58
  static checkSignaturePublicKeyId(keyId, throwError = true) {
62
59
  return this.checkId(keyId, 0, 30, throwError);
63
60
  }
@@ -91,25 +88,6 @@ class CryptoSignatureValidation extends CryptoValidation_1.CryptoValidation {
91
88
  throw error;
92
89
  return error;
93
90
  }
94
- static checkSignatureKeypair(privateKey, publicKey, throwError = true) {
95
- let error;
96
- error = this.checkSignaturePublicKey(publicKey, throwError);
97
- if (error && throwError)
98
- throw error;
99
- else if (error)
100
- return error;
101
- error = this.checkSignaturePrivateKey(privateKey, throwError);
102
- if (error && throwError)
103
- throw error;
104
- else if (error)
105
- return error;
106
- if (privateKey.algorithm !== publicKey.algorithm) {
107
- error = new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.SignatureWrongAlgorithm, "Algorithms of private and public key do not match.");
108
- }
109
- if (error && throwError)
110
- throw error;
111
- return error;
112
- }
113
91
  }
114
92
  exports.CryptoSignatureValidation = CryptoSignatureValidation;
115
93
  CryptoSignatureValidation.PRIVATE_KEY_MIN_BYTES = 20;
@@ -1 +1 @@
1
- {"version":3,"file":"CryptoSignatureValidation.js","sourceRoot":"","sources":["../../src/signature/CryptoSignatureValidation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CryptoSignatureValidation.js","sourceRoot":"","sources":["../../src/signature/CryptoSignatureValidation.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,10 @@
1
1
  import { CoreBuffer } from "../CoreBuffer";
2
2
  import { CryptoHashAlgorithm } from "../hash/CryptoHash";
3
3
  import { CryptoSignature } from "./CryptoSignature";
4
+ import { CryptoSignatureAlgorithm } from "./CryptoSignatureAlgorithm";
4
5
  import { CryptoSignatureKeypair } from "./CryptoSignatureKeypair";
5
6
  import { CryptoSignaturePrivateKey } from "./CryptoSignaturePrivateKey";
6
7
  import { CryptoSignaturePublicKey } from "./CryptoSignaturePublicKey";
7
- export declare const enum CryptoSignatureAlgorithm {
8
- ECDSA_P256 = 1,
9
- ECDSA_P521 = 2,
10
- ECDSA_ED25519 = 3
11
- }
12
8
  export declare class CryptoSignatures {
13
9
  static privateKeyToPublicKey(privateKey: CryptoSignaturePrivateKey): Promise<CryptoSignaturePublicKey>;
14
10
  /**
@@ -16,7 +16,7 @@ class CryptoSignatures {
16
16
  case 3 /* ECDSA_ED25519 */:
17
17
  try {
18
18
  const publicKey = (await SodiumWrapper_1.SodiumWrapper.ready()).crypto_sign_ed25519_sk_to_pk(privateKey.privateKey.buffer);
19
- return await CryptoSignaturePublicKey_1.CryptoSignaturePublicKey.from({
19
+ return CryptoSignaturePublicKey_1.CryptoSignaturePublicKey.from({
20
20
  algorithm: privateKey.algorithm,
21
21
  publicKey: CoreBuffer_1.CoreBuffer.from(publicKey)
22
22
  });
@@ -47,9 +47,9 @@ class CryptoSignatures {
47
47
  default:
48
48
  throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.NotYetImplemented);
49
49
  }
50
- const privateKey = new CryptoSignaturePrivateKey_1.CryptoSignaturePrivateKey(algorithm, new CoreBuffer_1.CoreBuffer(pair.privateKey));
51
- const publicKey = new CryptoSignaturePublicKey_1.CryptoSignaturePublicKey(algorithm, new CoreBuffer_1.CoreBuffer(pair.publicKey));
52
- const keypair = new CryptoSignatureKeypair_1.CryptoSignatureKeypair(publicKey, privateKey);
50
+ const privateKey = CryptoSignaturePrivateKey_1.CryptoSignaturePrivateKey.from({ algorithm, privateKey: CoreBuffer_1.CoreBuffer.from(pair.privateKey) });
51
+ const publicKey = CryptoSignaturePublicKey_1.CryptoSignaturePublicKey.from({ algorithm, publicKey: CoreBuffer_1.CoreBuffer.from(pair.publicKey) });
52
+ const keypair = CryptoSignatureKeypair_1.CryptoSignatureKeypair.from({ publicKey, privateKey });
53
53
  return keypair;
54
54
  }
55
55
  static async sign(content, privateKey, algorithm = 2 /* SHA512 */, keyId, id) {
@@ -59,7 +59,7 @@ class CryptoSignatures {
59
59
  try {
60
60
  const signatureArray = (await SodiumWrapper_1.SodiumWrapper.ready()).crypto_sign_detached(content.buffer, privateKeyBuffer);
61
61
  const signatureBuffer = new CoreBuffer_1.CoreBuffer(signatureArray);
62
- const signature = new CryptoSignature_1.CryptoSignature(signatureBuffer, algorithm, keyId, id);
62
+ const signature = CryptoSignature_1.CryptoSignature.from({ signature: signatureBuffer, algorithm, keyId, id });
63
63
  return signature;
64
64
  }
65
65
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"CryptoSignatures.js","sourceRoot":"","sources":["../../src/signature/CryptoSignatures.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CryptoSignatures.js","sourceRoot":"","sources":["../../src/signature/CryptoSignatures.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ISerializableAsync, ISerialized, SerializableAsync } from "@js-soft/ts-serval";
1
+ import { ISerializable, ISerialized, Serializable } from "@js-soft/ts-serval";
2
2
  import { CoreBuffer, IClearable, ICoreBuffer } from "../CoreBuffer";
3
3
  import { CryptoEncryptionAlgorithm } from "../encryption/CryptoEncryption";
4
4
  import { CryptoPublicState } from "./CryptoPublicState";
@@ -11,7 +11,7 @@ export interface ICryptoPrivateStateSerialized extends ISerialized {
11
11
  id?: string;
12
12
  typ: number;
13
13
  }
14
- export interface ICryptoPrivateState extends ISerializableAsync {
14
+ export interface ICryptoPrivateState extends ISerializable {
15
15
  secretKey: ICoreBuffer;
16
16
  nonce: ICoreBuffer;
17
17
  counter: number;
@@ -19,27 +19,19 @@ export interface ICryptoPrivateState extends ISerializableAsync {
19
19
  id?: string;
20
20
  stateType: CryptoStateType;
21
21
  }
22
- export declare class CryptoPrivateState extends SerializableAsync implements ICryptoPrivateState, IClearable {
23
- private readonly _id?;
24
- get id(): string | undefined;
25
- private readonly _nonce;
26
- get nonce(): CoreBuffer;
27
- private _counter;
28
- get counter(): number;
29
- private readonly _secretKey;
30
- get secretKey(): CoreBuffer;
31
- private readonly _algorithm;
32
- get algorithm(): CryptoEncryptionAlgorithm;
33
- private readonly _stateType;
34
- get stateType(): CryptoStateType;
35
- constructor(nonce: CoreBuffer, counter: number, secretKey: CoreBuffer, algorithm: CryptoEncryptionAlgorithm, stateType: CryptoStateType, id?: string);
22
+ export declare class CryptoPrivateState extends Serializable implements ICryptoPrivateState, IClearable {
23
+ id?: string;
24
+ nonce: CoreBuffer;
25
+ counter: number;
26
+ secretKey: CoreBuffer;
27
+ algorithm: CryptoEncryptionAlgorithm;
28
+ stateType: CryptoStateType;
36
29
  protected setCounter(value: number): void;
37
30
  clear(): void;
38
31
  toString(): string;
39
- serialize(): string;
40
32
  toPublicState(): CryptoPublicState;
41
33
  toJSON(verbose?: boolean): ICryptoPrivateStateSerialized;
42
- static from(obj: CryptoPrivateState | ICryptoPrivateState): Promise<CryptoPrivateState>;
43
- static fromJSON(value: ICryptoPrivateStateSerialized): Promise<CryptoPrivateState>;
44
- static deserialize(value: string): Promise<CryptoPrivateState>;
34
+ protected static preFrom(value: any): any;
35
+ static from(obj: CryptoPrivateState | ICryptoPrivateState): CryptoPrivateState;
36
+ static fromJSON(value: ICryptoPrivateStateSerialized): CryptoPrivateState;
45
37
  }
@@ -1,50 +1,23 @@
1
1
  "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.CryptoPrivateState = void 0;
4
13
  const ts_serval_1 = require("@js-soft/ts-serval");
5
14
  const CoreBuffer_1 = require("../CoreBuffer");
6
- const CryptoError_1 = require("../CryptoError");
7
- const CryptoErrorCode_1 = require("../CryptoErrorCode");
8
15
  const CryptoValidation_1 = require("../CryptoValidation");
9
16
  const CryptoPublicState_1 = require("./CryptoPublicState");
10
- class CryptoPrivateState extends ts_serval_1.SerializableAsync {
11
- constructor(nonce, counter, secretKey, algorithm, stateType, id) {
12
- CryptoValidation_1.CryptoValidation.checkEncryptionAlgorithm(algorithm);
13
- CryptoValidation_1.CryptoValidation.checkCounter(counter);
14
- CryptoValidation_1.CryptoValidation.checkNonceForAlgorithm(nonce, algorithm);
15
- CryptoValidation_1.CryptoValidation.checkSecretKeyForAlgorithm(secretKey, algorithm);
16
- CryptoValidation_1.CryptoValidation.checkStateType(stateType);
17
- if (id) {
18
- CryptoValidation_1.CryptoValidation.checkId(id);
19
- }
20
- super();
21
- this._nonce = nonce;
22
- this._counter = counter ? counter : 0;
23
- this._secretKey = secretKey;
24
- this._algorithm = algorithm;
25
- this._stateType = stateType;
26
- this._id = id;
27
- }
28
- get id() {
29
- return this._id;
30
- }
31
- get nonce() {
32
- return this._nonce;
33
- }
34
- get counter() {
35
- return this._counter;
36
- }
37
- get secretKey() {
38
- return this._secretKey;
39
- }
40
- get algorithm() {
41
- return this._algorithm;
42
- }
43
- get stateType() {
44
- return this._stateType;
45
- }
17
+ const CryptoStateType_1 = require("./CryptoStateType");
18
+ class CryptoPrivateState extends ts_serval_1.Serializable {
46
19
  setCounter(value) {
47
- this._counter = value;
20
+ this.counter = value;
48
21
  }
49
22
  clear() {
50
23
  this.secretKey.clear();
@@ -53,59 +26,82 @@ class CryptoPrivateState extends ts_serval_1.SerializableAsync {
53
26
  toString() {
54
27
  return this.serialize();
55
28
  }
56
- serialize() {
57
- const obj = this.toJSON();
58
- return JSON.stringify(obj);
59
- }
60
29
  toPublicState() {
61
- return new CryptoPublicState_1.CryptoPublicState(this.nonce.clone(), this.algorithm, this.stateType, this.id);
30
+ return CryptoPublicState_1.CryptoPublicState.from({
31
+ nonce: this.nonce.clone(),
32
+ algorithm: this.algorithm,
33
+ stateType: this.stateType,
34
+ id: this.id
35
+ });
62
36
  }
63
37
  toJSON(verbose = true) {
64
- const obj = {
38
+ return {
65
39
  nnc: this.nonce.toBase64URL(),
66
40
  cnt: this.counter,
67
41
  key: this.secretKey.toBase64URL(),
68
42
  alg: this.algorithm,
69
- typ: this.stateType
43
+ typ: this.stateType,
44
+ id: this.id,
45
+ "@type": verbose ? "CryptoPrivateState" : undefined
70
46
  };
71
- if (this.id) {
72
- obj.id = this.id;
47
+ }
48
+ static preFrom(value) {
49
+ if (value.nnc) {
50
+ value = {
51
+ nonce: value.nnc,
52
+ counter: value.cnt,
53
+ secretKey: value.key,
54
+ algorithm: value.alg,
55
+ stateType: value.typ,
56
+ id: value.id
57
+ };
73
58
  }
74
- if (verbose) {
75
- obj["@type"] = "CryptoPrivateState";
59
+ CryptoValidation_1.CryptoValidation.checkEncryptionAlgorithm(value.algorithm);
60
+ CryptoValidation_1.CryptoValidation.checkCounter(value.counter);
61
+ CryptoValidation_1.CryptoValidation.checkNonce(value.nonce, value.algorithm);
62
+ CryptoValidation_1.CryptoValidation.checkSecretKeyForAlgorithm(value.secretKey, value.algorithm);
63
+ CryptoValidation_1.CryptoValidation.checkStateType(value.stateType);
64
+ if (value.id) {
65
+ CryptoValidation_1.CryptoValidation.checkId(value.id);
76
66
  }
77
- return obj;
67
+ return value;
78
68
  }
79
69
  static from(obj) {
80
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
81
- if (!obj.secretKey) {
82
- throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.StateWrongSecretKey, "No secretKey property set.");
83
- }
84
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
85
- if (!obj.nonce) {
86
- throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.StateWrongNonce, "No nonce nor counter property set.");
87
- }
88
- if (typeof obj.counter === "undefined") {
89
- throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.StateWrongCounter, "Wrong counter.");
90
- }
91
- return Promise.resolve(new CryptoPrivateState(CoreBuffer_1.CoreBuffer.from(obj.nonce), obj.counter, CoreBuffer_1.CoreBuffer.from(obj.secretKey), obj.algorithm, obj.stateType, obj.id));
70
+ return this.fromAny(obj);
92
71
  }
93
72
  static fromJSON(value) {
94
- CryptoValidation_1.CryptoValidation.checkEncryptionAlgorithm(value.alg);
95
- CryptoValidation_1.CryptoValidation.checkCounter(value.cnt);
96
- CryptoValidation_1.CryptoValidation.checkSerializedBuffer(value.nnc, 0, 24, "nonce");
97
- CryptoValidation_1.CryptoValidation.checkSerializedSecretKeyForAlgorithm(value.key, value.alg);
98
- if (value.typ) {
99
- CryptoValidation_1.CryptoValidation.checkStateType(value.typ);
100
- }
101
- const nonceBuffer = CoreBuffer_1.CoreBuffer.fromBase64URL(value.nnc);
102
- const secretKeyBuffer = CoreBuffer_1.CoreBuffer.fromBase64URL(value.key);
103
- return Promise.resolve(new CryptoPrivateState(nonceBuffer, value.cnt, secretKeyBuffer, value.alg, value.typ, value.id));
104
- }
105
- static async deserialize(value) {
106
- const obj = JSON.parse(value);
107
- return await this.from(obj);
73
+ return this.fromAny(value);
108
74
  }
109
75
  }
76
+ __decorate([
77
+ (0, ts_serval_1.validate)({ nullable: true }),
78
+ (0, ts_serval_1.serialize)(),
79
+ __metadata("design:type", String)
80
+ ], CryptoPrivateState.prototype, "id", void 0);
81
+ __decorate([
82
+ (0, ts_serval_1.validate)(),
83
+ (0, ts_serval_1.serialize)(),
84
+ __metadata("design:type", CoreBuffer_1.CoreBuffer)
85
+ ], CryptoPrivateState.prototype, "nonce", void 0);
86
+ __decorate([
87
+ (0, ts_serval_1.validate)(),
88
+ (0, ts_serval_1.serialize)(),
89
+ __metadata("design:type", Number)
90
+ ], CryptoPrivateState.prototype, "counter", void 0);
91
+ __decorate([
92
+ (0, ts_serval_1.validate)(),
93
+ (0, ts_serval_1.serialize)(),
94
+ __metadata("design:type", CoreBuffer_1.CoreBuffer)
95
+ ], CryptoPrivateState.prototype, "secretKey", void 0);
96
+ __decorate([
97
+ (0, ts_serval_1.validate)(),
98
+ (0, ts_serval_1.serialize)(),
99
+ __metadata("design:type", Number)
100
+ ], CryptoPrivateState.prototype, "algorithm", void 0);
101
+ __decorate([
102
+ (0, ts_serval_1.validate)(),
103
+ (0, ts_serval_1.serialize)(),
104
+ __metadata("design:type", Number)
105
+ ], CryptoPrivateState.prototype, "stateType", void 0);
110
106
  exports.CryptoPrivateState = CryptoPrivateState;
111
107
  //# sourceMappingURL=CryptoPrivateState.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CryptoPrivateState.js","sourceRoot":"","sources":["../../src/state/CryptoPrivateState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CryptoPrivateState.js","sourceRoot":"","sources":["../../src/state/CryptoPrivateState.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,13 @@
1
1
  import { CoreBuffer } from "../CoreBuffer";
2
2
  import { CryptoCipher } from "../encryption/CryptoCipher";
3
- import { CryptoEncryptionAlgorithm } from "../encryption/CryptoEncryption";
4
3
  import { CryptoPrivateState, ICryptoPrivateState, ICryptoPrivateStateSerialized } from "./CryptoPrivateState";
5
4
  import { CryptoPublicState } from "./CryptoPublicState";
6
5
  export declare class CryptoPrivateStateReceive extends CryptoPrivateState {
7
- constructor(nonce: CoreBuffer, counter: number, secretKey: CoreBuffer, algorithm: CryptoEncryptionAlgorithm, id?: string);
8
6
  toJSON(): ICryptoPrivateStateSerialized;
9
7
  decrypt(cipher: CryptoCipher, omitCounterCheck?: boolean): Promise<CoreBuffer>;
10
8
  static fromNonce(nonce: CoreBuffer, secretKey: CoreBuffer, counter?: number): CryptoPrivateStateReceive;
11
- static fromPublicState(publicState: CryptoPublicState, secretKey: CoreBuffer, counter?: number): Promise<CryptoPrivateStateReceive>;
12
- static from(obj: CryptoPrivateState | ICryptoPrivateState): Promise<CryptoPrivateStateReceive>;
13
- static fromJSON(value: ICryptoPrivateStateSerialized): Promise<CryptoPrivateStateReceive>;
14
- static deserialize(value: string): Promise<CryptoPrivateStateReceive>;
9
+ static fromPublicState(publicState: CryptoPublicState, secretKey: CoreBuffer, counter?: number): CryptoPrivateStateReceive;
10
+ protected static preFrom(value: any): any;
11
+ static from(obj: CryptoPrivateState | ICryptoPrivateState): CryptoPrivateStateReceive;
12
+ static fromJSON(value: ICryptoPrivateStateSerialized): CryptoPrivateStateReceive;
15
13
  }