@bsv/sdk 1.2.20 → 1.2.22

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 (160) hide show
  1. package/dist/cjs/package.json +3 -3
  2. package/dist/cjs/src/auth/Peer.js +536 -0
  3. package/dist/cjs/src/auth/Peer.js.map +1 -0
  4. package/dist/cjs/src/auth/SessionManager.js +66 -0
  5. package/dist/cjs/src/auth/SessionManager.js.map +1 -0
  6. package/dist/cjs/src/auth/{Certificate.js → certificates/Certificate.js} +22 -26
  7. package/dist/cjs/src/auth/certificates/Certificate.js.map +1 -0
  8. package/dist/cjs/src/auth/certificates/MasterCertificate.js +79 -0
  9. package/dist/cjs/src/auth/certificates/MasterCertificate.js.map +1 -0
  10. package/dist/cjs/src/auth/certificates/VerifiableCertificate.js +49 -0
  11. package/dist/cjs/src/auth/certificates/VerifiableCertificate.js.map +1 -0
  12. package/dist/cjs/src/auth/certificates/index.js +25 -0
  13. package/dist/cjs/src/auth/certificates/index.js.map +1 -0
  14. package/dist/cjs/src/auth/clients/AuthFetch.js +411 -0
  15. package/dist/cjs/src/auth/clients/AuthFetch.js.map +1 -0
  16. package/dist/cjs/src/auth/clients/index.js +18 -0
  17. package/dist/cjs/src/auth/clients/index.js.map +1 -0
  18. package/dist/cjs/src/auth/index.js +20 -5
  19. package/dist/cjs/src/auth/index.js.map +1 -1
  20. package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js +259 -0
  21. package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js.map +1 -0
  22. package/dist/cjs/src/auth/transports/index.js +18 -0
  23. package/dist/cjs/src/auth/transports/index.js.map +1 -0
  24. package/dist/cjs/src/auth/types.js +3 -0
  25. package/dist/cjs/src/auth/types.js.map +1 -0
  26. package/dist/cjs/src/auth/utils/certificateHelpers.js +51 -0
  27. package/dist/cjs/src/auth/utils/certificateHelpers.js.map +1 -0
  28. package/dist/cjs/src/auth/utils/createNonce.js +19 -0
  29. package/dist/cjs/src/auth/utils/createNonce.js.map +1 -0
  30. package/dist/cjs/src/auth/utils/getVerifiableCertificates.js +31 -0
  31. package/dist/cjs/src/auth/utils/getVerifiableCertificates.js.map +1 -0
  32. package/dist/cjs/src/auth/utils/index.js +22 -0
  33. package/dist/cjs/src/auth/utils/index.js.map +1 -0
  34. package/dist/cjs/src/auth/utils/validateCertificates.js +42 -0
  35. package/dist/cjs/src/auth/utils/validateCertificates.js.map +1 -0
  36. package/dist/cjs/src/auth/utils/verifyNonce.js +27 -0
  37. package/dist/cjs/src/auth/utils/verifyNonce.js.map +1 -0
  38. package/dist/cjs/src/primitives/Point.js +1 -1
  39. package/dist/cjs/src/primitives/Point.js.map +1 -1
  40. package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js +1 -1
  41. package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
  42. package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js +148 -148
  43. package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
  44. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  45. package/dist/esm/src/auth/Peer.js +533 -0
  46. package/dist/esm/src/auth/Peer.js.map +1 -0
  47. package/dist/esm/src/auth/SessionManager.js +63 -0
  48. package/dist/esm/src/auth/SessionManager.js.map +1 -0
  49. package/dist/esm/src/auth/{Certificate.js → certificates/Certificate.js} +1 -2
  50. package/dist/esm/src/auth/certificates/Certificate.js.map +1 -0
  51. package/dist/esm/src/auth/certificates/MasterCertificate.js +73 -0
  52. package/dist/esm/src/auth/certificates/MasterCertificate.js.map +1 -0
  53. package/dist/esm/src/auth/certificates/VerifiableCertificate.js +44 -0
  54. package/dist/esm/src/auth/certificates/VerifiableCertificate.js.map +1 -0
  55. package/dist/esm/src/auth/certificates/index.js +4 -0
  56. package/dist/esm/src/auth/certificates/index.js.map +1 -0
  57. package/dist/esm/src/auth/clients/AuthFetch.js +409 -0
  58. package/dist/esm/src/auth/clients/AuthFetch.js.map +1 -0
  59. package/dist/esm/src/auth/clients/index.js +2 -0
  60. package/dist/esm/src/auth/clients/index.js.map +1 -0
  61. package/dist/esm/src/auth/index.js +7 -1
  62. package/dist/esm/src/auth/index.js.map +1 -1
  63. package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js +258 -0
  64. package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js.map +1 -0
  65. package/dist/esm/src/auth/transports/index.js +2 -0
  66. package/dist/esm/src/auth/transports/index.js.map +1 -0
  67. package/dist/esm/src/auth/types.js +2 -0
  68. package/dist/esm/src/auth/types.js.map +1 -0
  69. package/dist/esm/src/auth/utils/certificateHelpers.js +47 -0
  70. package/dist/esm/src/auth/utils/certificateHelpers.js.map +1 -0
  71. package/dist/esm/src/auth/utils/createNonce.js +16 -0
  72. package/dist/esm/src/auth/utils/createNonce.js.map +1 -0
  73. package/dist/esm/src/auth/utils/getVerifiableCertificates.js +27 -0
  74. package/dist/esm/src/auth/utils/getVerifiableCertificates.js.map +1 -0
  75. package/dist/esm/src/auth/utils/index.js +6 -0
  76. package/dist/esm/src/auth/utils/index.js.map +1 -0
  77. package/dist/esm/src/auth/utils/validateCertificates.js +38 -0
  78. package/dist/esm/src/auth/utils/validateCertificates.js.map +1 -0
  79. package/dist/esm/src/auth/utils/verifyNonce.js +24 -0
  80. package/dist/esm/src/auth/utils/verifyNonce.js.map +1 -0
  81. package/dist/esm/src/primitives/Point.js +1 -1
  82. package/dist/esm/src/primitives/Point.js.map +1 -1
  83. package/dist/esm/src/wallet/substrates/WalletWireProcessor.js +1 -1
  84. package/dist/esm/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
  85. package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js +1 -1
  86. package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
  87. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  88. package/dist/types/src/auth/Peer.d.ts +193 -0
  89. package/dist/types/src/auth/Peer.d.ts.map +1 -0
  90. package/dist/types/src/auth/SessionManager.d.ts +42 -0
  91. package/dist/types/src/auth/SessionManager.d.ts.map +1 -0
  92. package/dist/types/src/auth/{Certificate.d.ts → certificates/Certificate.d.ts} +1 -1
  93. package/dist/types/src/auth/certificates/Certificate.d.ts.map +1 -0
  94. package/dist/types/src/auth/certificates/MasterCertificate.d.ts +38 -0
  95. package/dist/types/src/auth/certificates/MasterCertificate.d.ts.map +1 -0
  96. package/dist/types/src/auth/certificates/VerifiableCertificate.d.ts +26 -0
  97. package/dist/types/src/auth/certificates/VerifiableCertificate.d.ts.map +1 -0
  98. package/dist/types/src/auth/certificates/index.d.ts +4 -0
  99. package/dist/types/src/auth/certificates/index.d.ts.map +1 -0
  100. package/dist/types/src/auth/clients/AuthFetch.d.ts +87 -0
  101. package/dist/types/src/auth/clients/AuthFetch.d.ts.map +1 -0
  102. package/dist/types/src/auth/clients/index.d.ts +2 -0
  103. package/dist/types/src/auth/clients/index.d.ts.map +1 -0
  104. package/dist/types/src/auth/index.d.ts +7 -1
  105. package/dist/types/src/auth/index.d.ts.map +1 -1
  106. package/dist/types/src/auth/transports/SimplifiedFetchTransport.d.ts +51 -0
  107. package/dist/types/src/auth/transports/SimplifiedFetchTransport.d.ts.map +1 -0
  108. package/dist/types/src/auth/transports/index.d.ts +2 -0
  109. package/dist/types/src/auth/transports/index.d.ts.map +1 -0
  110. package/dist/types/src/auth/types.d.ts +31 -0
  111. package/dist/types/src/auth/types.d.ts.map +1 -0
  112. package/dist/types/src/auth/utils/certificateHelpers.d.ts +26 -0
  113. package/dist/types/src/auth/utils/certificateHelpers.d.ts.map +1 -0
  114. package/dist/types/src/auth/utils/createNonce.d.ts +8 -0
  115. package/dist/types/src/auth/utils/createNonce.d.ts.map +1 -0
  116. package/dist/types/src/auth/utils/getVerifiableCertificates.d.ts +13 -0
  117. package/dist/types/src/auth/utils/getVerifiableCertificates.d.ts.map +1 -0
  118. package/dist/types/src/auth/utils/index.d.ts +6 -0
  119. package/dist/types/src/auth/utils/index.d.ts.map +1 -0
  120. package/dist/types/src/auth/utils/validateCertificates.d.ts +12 -0
  121. package/dist/types/src/auth/utils/validateCertificates.d.ts.map +1 -0
  122. package/dist/types/src/auth/utils/verifyNonce.d.ts +9 -0
  123. package/dist/types/src/auth/utils/verifyNonce.d.ts.map +1 -0
  124. package/dist/types/src/primitives/Point.d.ts.map +1 -1
  125. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  126. package/dist/umd/bundle.js +1 -1
  127. package/docs/README.md +1 -0
  128. package/docs/auth.md +1193 -0
  129. package/package.json +13 -3
  130. package/src/auth/Peer.ts +600 -0
  131. package/src/auth/SessionManager.ts +71 -0
  132. package/src/auth/__tests/Peer.test.ts +599 -0
  133. package/src/auth/__tests/SessionManager.test.ts +87 -0
  134. package/src/auth/{Certificate.ts → certificates/Certificate.ts} +15 -8
  135. package/src/auth/certificates/MasterCertificate.ts +106 -0
  136. package/src/auth/certificates/VerifiableCertificate.ts +73 -0
  137. package/src/auth/certificates/__tests/Certificate.test.ts +282 -0
  138. package/src/auth/certificates/index.ts +3 -0
  139. package/src/auth/clients/AuthFetch.ts +482 -0
  140. package/src/auth/clients/index.ts +1 -0
  141. package/src/auth/index.ts +7 -1
  142. package/src/auth/transports/SimplifiedFetchTransport.ts +288 -0
  143. package/src/auth/transports/index.ts +1 -0
  144. package/src/auth/types.ts +41 -0
  145. package/src/auth/utils/__tests/cryptononce.test.ts +84 -0
  146. package/src/auth/utils/__tests/getVerifiableCertificates.test.ts +126 -0
  147. package/src/auth/utils/__tests/validateCertificates.test.ts +142 -0
  148. package/src/auth/utils/certificateHelpers.ts +86 -0
  149. package/src/auth/utils/createNonce.ts +16 -0
  150. package/src/auth/utils/getVerifiableCertificates.ts +40 -0
  151. package/src/auth/utils/index.ts +5 -0
  152. package/src/auth/utils/validateCertificates.ts +54 -0
  153. package/src/auth/utils/verifyNonce.ts +27 -0
  154. package/src/primitives/Point.ts +59 -59
  155. package/src/wallet/substrates/WalletWireProcessor.ts +1 -1
  156. package/src/wallet/substrates/WalletWireTransceiver.ts +1 -1
  157. package/dist/cjs/src/auth/Certificate.js.map +0 -1
  158. package/dist/esm/src/auth/Certificate.js.map +0 -1
  159. package/dist/types/src/auth/Certificate.d.ts.map +0 -1
  160. package/src/auth/__tests/Certificate.test.ts +0 -282
@@ -0,0 +1,86 @@
1
+ import { PrivateKey, SymmetricKey, Utils, Wallet, ProtoWallet } from "../../../mod.js"
2
+ import { MasterCertificate } from "../certificates/MasterCertificate.js"
3
+ import { VerifiableCertificate } from "../certificates/VerifiableCertificate.js"
4
+
5
+ /**
6
+ * Creates a Master Certificate by encrypting provided fields and generating a master keyring.
7
+ *
8
+ * @param {Wallet} wallet - The wallet instance used for encryption and public key retrieval.
9
+ * @param {Record<string, string>} fields - The certificate fields to encrypt.
10
+ * @param {string} certificateType - The type of the certificate being created.
11
+ * @param {string} certificateSerialNumber - The serial number of the certificate.
12
+ * @param {string} certifierPublicKey - The public key of the certifier.
13
+ * @returns {Promise<MasterCertificate>} A promise resolving to the created Master Certificate.
14
+ */
15
+ export async function createMasterCertificate(
16
+ wallet: Wallet,
17
+ fields: Record<string, string>,
18
+ certificateType: string,
19
+ certificateSerialNumber: string,
20
+ certifierPublicKey: string
21
+ ): Promise<MasterCertificate> {
22
+ const certificateFields: Record<string, string> = {}
23
+ const masterKeyring: Record<string, string> = {}
24
+
25
+ for (const fieldName in fields) {
26
+ const fieldSymmetricKey = SymmetricKey.fromRandom()
27
+ const encryptedFieldValue = fieldSymmetricKey.encrypt(Utils.toArray(fields[fieldName], 'utf8'))
28
+ certificateFields[fieldName] = Utils.toBase64(encryptedFieldValue as number[])
29
+
30
+ const encryptedFieldKey = await wallet.encrypt({
31
+ plaintext: fieldSymmetricKey.toArray(),
32
+ protocolID: [2, 'certificate field encryption'],
33
+ keyID: `${certificateSerialNumber} ${fieldName}`,
34
+ counterparty: 'self'
35
+ })
36
+ masterKeyring[fieldName] = Utils.toBase64(encryptedFieldKey.ciphertext)
37
+ }
38
+
39
+ return new MasterCertificate(
40
+ certificateType,
41
+ certificateSerialNumber,
42
+ (await wallet.getPublicKey({ identityKey: true })).publicKey,
43
+ certifierPublicKey,
44
+ 'revocationOutpoint',
45
+ certificateFields,
46
+ masterKeyring
47
+ )
48
+ }
49
+
50
+ /**
51
+ * Creates a Verifiable Certificate by signing a Master Certificate and generating a keyring for a verifier.
52
+ *
53
+ * @param {MasterCertificate} masterCertificate - The master certificate to convert into a verifiable certificate.
54
+ * @param {Wallet} wallet - The wallet instance used for generating a keyring for the verifier.
55
+ * @param {string} verifierIdentityKey - The identity key of the verifier.
56
+ * @param {string[]} fieldsToReveal - The list of fields to reveal to the verifier.
57
+ * @param {PrivateKey} certifierPrivateKey - The private key of the certifier for signing the certificate.
58
+ * @returns {Promise<VerifiableCertificate>} A promise resolving to the created Verifiable Certificate.
59
+ */
60
+ export async function createVerifiableCertificate(
61
+ masterCertificate: MasterCertificate,
62
+ wallet: Wallet,
63
+ verifierIdentityKey: string,
64
+ fieldsToReveal: string[],
65
+ certifierPrivateKey: PrivateKey
66
+ ): Promise<VerifiableCertificate> {
67
+ const certifierWallet = new ProtoWallet(certifierPrivateKey)
68
+ await masterCertificate.sign(certifierWallet)
69
+
70
+ const keyringForVerifier = await masterCertificate.createKeyringForVerifier(
71
+ wallet,
72
+ verifierIdentityKey,
73
+ fieldsToReveal
74
+ )
75
+
76
+ return new VerifiableCertificate(
77
+ masterCertificate.type,
78
+ masterCertificate.serialNumber,
79
+ masterCertificate.subject,
80
+ masterCertificate.certifier,
81
+ masterCertificate.revocationOutpoint,
82
+ masterCertificate.fields,
83
+ masterCertificate.signature,
84
+ keyringForVerifier
85
+ )
86
+ }
@@ -0,0 +1,16 @@
1
+ import { Utils, Random, Wallet } from '../../../mod.js'
2
+
3
+ /**
4
+ * Creates a nonce derived from a privateKey
5
+ * @param wallet
6
+ * @returns A random nonce derived with a wallet
7
+ */
8
+ export async function createNonce(wallet: Wallet): Promise<string> {
9
+ // Generate 16 random bytes for the first half of the data
10
+ const firstHalf = Random(16)
11
+ // Create an sha256 HMAC
12
+ const { hmac } = await wallet.createHmac({ protocolID: [2, 'server hmac'], keyID: Utils.toUTF8(firstHalf), data: firstHalf, counterparty: 'self' })
13
+ // Concatenate firstHalf and secondHalf as the nonce bytes
14
+ const nonceBytes = [...firstHalf, ...hmac]
15
+ return Utils.toBase64(nonceBytes)
16
+ }
@@ -0,0 +1,40 @@
1
+ import { VerifiableCertificate } from "../certificates/VerifiableCertificate.js"
2
+ import { Wallet } from "../../../mod.js"
3
+ import { RequestedCertificateSet } from "../types.js"
4
+
5
+ /**
6
+ * Retrieves an array of verifiable certificates based on the request.
7
+ *
8
+ * @private
9
+ * @param {RequestedCertificateSet} requestedCertificates - The set of certificates requested by the peer.
10
+ * @param {string} verifierIdentityKey - The public key of the verifier requesting the certificates.
11
+ * @returns {Promise<VerifiableCertificate[]>} An array of verifiable certificates.
12
+ */
13
+ export const getVerifiableCertificates = async (wallet: Wallet, requestedCertificates: RequestedCertificateSet, verifierIdentityKey: string): Promise<VerifiableCertificate[]> => {
14
+ // Find matching certificates we have
15
+ // Note: This may return multiple certificates that match the correct type.
16
+ const matchingCertificates = await wallet.listCertificates({
17
+ certifiers: requestedCertificates.certifiers,
18
+ types: Object.keys(requestedCertificates.types)
19
+ })
20
+
21
+ // For each certificate requested, create a verifiable cert with selectively revealed fields
22
+ return await Promise.all(
23
+ matchingCertificates.certificates.map(async certificate => {
24
+ const { keyringForVerifier } = await wallet.proveCertificate({
25
+ certificate,
26
+ fieldsToReveal: requestedCertificates.types[certificate.type],
27
+ verifier: verifierIdentityKey
28
+ })
29
+ return new VerifiableCertificate(
30
+ certificate.type,
31
+ certificate.serialNumber,
32
+ certificate.subject,
33
+ certificate.certifier,
34
+ certificate.revocationOutpoint,
35
+ certificate.fields,
36
+ certificate.signature,
37
+ keyringForVerifier
38
+ )
39
+ }))
40
+ }
@@ -0,0 +1,5 @@
1
+ export * from './verifyNonce.js'
2
+ export * from './createNonce.js'
3
+ export * from './getVerifiableCertificates.js'
4
+ export * from './validateCertificates.js'
5
+ export * from './certificateHelpers.js'
@@ -0,0 +1,54 @@
1
+ import { Wallet } from "../../wallet/index.js"
2
+ import { AuthMessage, RequestedCertificateSet } from "../types.js"
3
+ import { VerifiableCertificate } from "../certificates/VerifiableCertificate.js"
4
+
5
+ /**
6
+ * Validates and processes the certificates received from a peer.
7
+ *
8
+ * @private
9
+ * @param {AuthMessage} message - The message containing the certificates to validate.
10
+ * @returns {Promise<void>}
11
+ * @throws Will throw an error if certificate validation or field decryption fails.
12
+ */
13
+ export const validateCertificates = async (verifierWallet: Wallet, message: AuthMessage, certificatesRequested?: RequestedCertificateSet): Promise<void> => {
14
+ await Promise.all(message.certificates.map(async (incomingCert: VerifiableCertificate) => {
15
+ if (incomingCert.subject !== message.identityKey) {
16
+ throw new Error(`The subject of one of your certificates ("${incomingCert.subject}") is not the same as the request sender ("${message.identityKey}").`)
17
+ }
18
+
19
+ // Verify Certificate structure and signature
20
+ const certToVerify = new VerifiableCertificate(
21
+ incomingCert.type,
22
+ incomingCert.serialNumber,
23
+ incomingCert.subject,
24
+ incomingCert.certifier,
25
+ incomingCert.revocationOutpoint,
26
+ incomingCert.fields,
27
+ incomingCert.signature,
28
+ incomingCert.keyring
29
+ )
30
+ const isValidCert = await certToVerify.verify()
31
+ if (!isValidCert) {
32
+ throw new Error(`The signature for the certificate with serial number ${certToVerify.serialNumber} is invalid!`)
33
+ }
34
+
35
+ // Check if the certificate matches requested certifiers, types, and fields
36
+ if (certificatesRequested) {
37
+ const { certifiers, types } = certificatesRequested
38
+
39
+ // Check certifier matches
40
+ if (!certifiers.includes(certToVerify.certifier)) {
41
+ throw new Error(`Certificate with serial number ${certToVerify.serialNumber} has an unrequested certifier: ${certToVerify.certifier}`)
42
+ }
43
+
44
+ // Check type and fields match requested
45
+ const requestedFields = types[certToVerify.type]
46
+ if (!requestedFields) {
47
+ throw new Error(`Certificate with type ${certToVerify.type} was not requested`)
48
+ }
49
+ }
50
+
51
+ // Attempt to decrypt fields
52
+ await certToVerify.decryptFields(verifierWallet)
53
+ }))
54
+ }
@@ -0,0 +1,27 @@
1
+ import { Utils, Wallet } from '../../../mod.js'
2
+
3
+ /**
4
+ * Verifies a nonce derived from a wallet
5
+ * @param nonce - A nonce to verify as a base64 string.
6
+ * @param wallet
7
+ * @returns The status of the validation
8
+ */
9
+ export async function verifyNonce(nonce: string, wallet: Wallet): Promise<boolean> {
10
+ // Convert nonce from base64 string to Uint8Array
11
+ const buffer = Utils.toArray(nonce, 'base64')
12
+
13
+ // Split the nonce buffer
14
+ const data = buffer.slice(0, 16)
15
+ const hmac = buffer.slice(16)
16
+
17
+ // Calculate the HMAC
18
+ const { valid } = await wallet.verifyHmac({
19
+ data,
20
+ hmac,
21
+ protocolID: [2, 'server hmac'],
22
+ keyID: Utils.toUTF8(data),
23
+ counterparty: 'self'
24
+ })
25
+
26
+ return valid
27
+ }
@@ -41,7 +41,7 @@ export default class Point extends BasePoint {
41
41
  * const derPoint = [ 2, 18, 123, 108, 125, 83, 1, 251, 164, 214, 16, 119, 200, 216, 210, 193, 251, 193, 129, 67, 97, 146, 210, 216, 77, 254, 18, 6, 150, 190, 99, 198, 128 ];
42
42
  * const point = Point.fromDER(derPoint);
43
43
  */
44
- static fromDER (bytes: number[]): Point {
44
+ static fromDER(bytes: number[]): Point {
45
45
  const len = 32
46
46
  // uncompressed, hybrid-odd, hybrid-even
47
47
  if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&
@@ -86,12 +86,12 @@ export default class Point extends BasePoint {
86
86
  * const pointStr = 'abcdef';
87
87
  * const point = Point.fromString(pointStr);
88
88
  */
89
- static fromString (str: string): Point {
89
+ static fromString(str: string): Point {
90
90
  const bytes = toArray(str, 'hex')
91
91
  return Point.fromDER(bytes)
92
92
  }
93
93
 
94
- static redSqrtOptimized (y2: BigNumber): BigNumber {
94
+ static redSqrtOptimized(y2: BigNumber): BigNumber {
95
95
  const red = Point.red
96
96
  const p = red.m // The modulus
97
97
  const exponent = p.addn(1).iushrn(2) // (p + 1) / 4
@@ -113,12 +113,12 @@ export default class Point extends BasePoint {
113
113
  * const xCoordinate = new BigNumber('10');
114
114
  * const point = Point.fromX(xCoordinate, true);
115
115
  */
116
- static fromX (x: BigNumber | number | number[] | string, odd: boolean): Point {
116
+ static fromX(x: BigNumber | number | number[] | string, odd: boolean): Point {
117
117
  if (typeof BigInt === 'function') {
118
- function mod (a: bigint, n: bigint): bigint {
118
+ function mod(a: bigint, n: bigint): bigint {
119
119
  return ((a % n) + n) % n
120
120
  }
121
- function modPow (base: bigint, exponent: bigint, modulus: bigint): bigint {
121
+ function modPow(base: bigint, exponent: bigint, modulus: bigint): bigint {
122
122
  let result = BigInt(1)
123
123
  base = mod(base, modulus)
124
124
  while (exponent > BigInt(0)) {
@@ -130,7 +130,7 @@ export default class Point extends BasePoint {
130
130
  }
131
131
  return result
132
132
  }
133
- function sqrtMod (a: bigint, p: bigint): bigint | null {
133
+ function sqrtMod(a: bigint, p: bigint): bigint | null {
134
134
  const exponent = (p + BigInt(1)) >> BigInt(2) // Precomputed exponent
135
135
  const sqrtCandidate = modPow(a, exponent, p)
136
136
  if (mod(sqrtCandidate * sqrtCandidate, p) === mod(a, p)) {
@@ -157,7 +157,7 @@ export default class Point extends BasePoint {
157
157
  } else if (Array.isArray(x)) {
158
158
  xBigInt = BigInt(
159
159
  '0x' +
160
- Buffer.from(x).toString('hex').padStart(64, '0')
160
+ toHex(x).padStart(64, '0')
161
161
  )
162
162
  } else if (typeof x === 'number') {
163
163
  xBigInt = BigInt(x)
@@ -232,7 +232,7 @@ export default class Point extends BasePoint {
232
232
  * const serializedPoint = '{"x":52,"y":15}';
233
233
  * const point = Point.fromJSON(serializedPoint, true);
234
234
  */
235
- static fromJSON (
235
+ static fromJSON(
236
236
  obj: string | any[], isRed: boolean
237
237
  ): Point {
238
238
  if (typeof obj === 'string') {
@@ -252,15 +252,15 @@ export default class Point extends BasePoint {
252
252
  beta: null,
253
253
  doubles: typeof pre.doubles === 'object' && pre.doubles !== null
254
254
  ? {
255
- step: pre.doubles.step,
256
- points: [res].concat(pre.doubles.points.map(obj2point))
257
- }
255
+ step: pre.doubles.step,
256
+ points: [res].concat(pre.doubles.points.map(obj2point))
257
+ }
258
258
  : undefined,
259
259
  naf: typeof pre.naf === 'object' && pre.naf !== null
260
260
  ? {
261
- wnd: pre.naf.wnd,
262
- points: [res].concat(pre.naf.points.map(obj2point))
263
- }
261
+ wnd: pre.naf.wnd,
262
+ points: [res].concat(pre.naf.points.map(obj2point))
263
+ }
264
264
  : undefined
265
265
  }
266
266
  return res
@@ -276,7 +276,7 @@ export default class Point extends BasePoint {
276
276
  * new Point('abc123', 'def456');
277
277
  * new Point(null, null); // Generates Infinity point.
278
278
  */
279
- constructor (
279
+ constructor(
280
280
  x: BigNumber | number | number[] | string | null,
281
281
  y: BigNumber | number | number[] | string | null,
282
282
  isRed: boolean = true
@@ -318,7 +318,7 @@ export default class Point extends BasePoint {
318
318
  * const aPoint = new Point(x, y);
319
319
  * const isValid = aPoint.validate();
320
320
  */
321
- validate (): boolean {
321
+ validate(): boolean {
322
322
  return this.curve.validate(this)
323
323
  }
324
324
 
@@ -337,7 +337,7 @@ export default class Point extends BasePoint {
337
337
  * const encodedPointArray = aPoint.encode();
338
338
  * const encodedPointHex = aPoint.encode(true, 'hex');
339
339
  */
340
- encode (compact: boolean = true, enc?: 'hex'): number[] | string {
340
+ encode(compact: boolean = true, enc?: 'hex'): number[] | string {
341
341
  const len = this.curve.p.byteLength()
342
342
  const x = this.getX().toArray('be', len)
343
343
  let res: number[]
@@ -364,7 +364,7 @@ export default class Point extends BasePoint {
364
364
  * const aPoint = new Point(x, y);
365
365
  * const stringPoint = aPoint.toString();
366
366
  */
367
- toString (): string {
367
+ toString(): string {
368
368
  return this.encode(true, 'hex') as string
369
369
  }
370
370
 
@@ -378,24 +378,24 @@ export default class Point extends BasePoint {
378
378
  * const aPoint = new Point(x, y);
379
379
  * const jsonPoint = aPoint.toJSON();
380
380
  */
381
- toJSON (): [BigNumber | null, BigNumber | null, { doubles: { step: any, points: any[] } | undefined, naf: { wnd: any, points: any[] } | undefined }?] {
381
+ toJSON(): [BigNumber | null, BigNumber | null, { doubles: { step: any, points: any[] } | undefined, naf: { wnd: any, points: any[] } | undefined }?] {
382
382
  if (this.precomputed == null) { return [this.x, this.y] }
383
383
 
384
384
  return [this.x, this.y, typeof this.precomputed === 'object' && this.precomputed !== null
385
385
  ? {
386
- doubles: (this.precomputed.doubles != null)
387
- ? {
388
- step: this.precomputed.doubles.step,
389
- points: this.precomputed.doubles.points.slice(1)
390
- }
391
- : undefined,
392
- naf: (this.precomputed.naf != null)
393
- ? {
394
- wnd: this.precomputed.naf.wnd,
395
- points: this.precomputed.naf.points.slice(1)
396
- }
397
- : undefined
398
- }
386
+ doubles: (this.precomputed.doubles != null)
387
+ ? {
388
+ step: this.precomputed.doubles.step,
389
+ points: this.precomputed.doubles.points.slice(1)
390
+ }
391
+ : undefined,
392
+ naf: (this.precomputed.naf != null)
393
+ ? {
394
+ wnd: this.precomputed.naf.wnd,
395
+ points: this.precomputed.naf.points.slice(1)
396
+ }
397
+ : undefined
398
+ }
399
399
  : undefined]
400
400
  }
401
401
 
@@ -409,7 +409,7 @@ export default class Point extends BasePoint {
409
409
  * const aPoint = new Point(x, y);
410
410
  * console.log(aPoint.inspect());
411
411
  */
412
- inspect (): string {
412
+ inspect(): string {
413
413
  if (this.isInfinity()) {
414
414
  return '<EC Point Infinity>'
415
415
  }
@@ -426,7 +426,7 @@ export default class Point extends BasePoint {
426
426
  * const p = new Point(null, null);
427
427
  * console.log(p.isInfinity()); // outputs: true
428
428
  */
429
- isInfinity (): boolean {
429
+ isInfinity(): boolean {
430
430
  return this.inf
431
431
  }
432
432
 
@@ -442,7 +442,7 @@ export default class Point extends BasePoint {
442
442
  * const p2 = new Point(2, 3);
443
443
  * const result = p1.add(p2);
444
444
  */
445
- add (p: Point): Point {
445
+ add(p: Point): Point {
446
446
  // O + P = P
447
447
  if (this.inf) { return p }
448
448
 
@@ -474,7 +474,7 @@ export default class Point extends BasePoint {
474
474
  * const P = new Point('123', '456');
475
475
  * const result = P.dbl();
476
476
  * */
477
- dbl (): Point {
477
+ dbl(): Point {
478
478
  if (this.inf) { return this }
479
479
 
480
480
  // 2P = O
@@ -501,7 +501,7 @@ export default class Point extends BasePoint {
501
501
  * const P = new Point('123', '456');
502
502
  * const x = P.getX();
503
503
  */
504
- getX (): BigNumber {
504
+ getX(): BigNumber {
505
505
  return this.x.fromRed()
506
506
  }
507
507
 
@@ -512,7 +512,7 @@ export default class Point extends BasePoint {
512
512
  * const P = new Point('123', '456');
513
513
  * const x = P.getX();
514
514
  */
515
- getY (): BigNumber {
515
+ getY(): BigNumber {
516
516
  return this.y.fromRed()
517
517
  }
518
518
 
@@ -527,7 +527,7 @@ export default class Point extends BasePoint {
527
527
  * const p = new Point(1, 2);
528
528
  * const result = p.mul(2); // this doubles the Point
529
529
  */
530
- mul (k: BigNumber | number | number[] | string): Point {
530
+ mul(k: BigNumber | number | number[] | string): Point {
531
531
  if (!BigNumber.isBN(k)) {
532
532
  k = new BigNumber(k as number, 16)
533
533
  }
@@ -556,7 +556,7 @@ export default class Point extends BasePoint {
556
556
  * const p2 = new Point(2, 3);
557
557
  * const result = p1.mulAdd(2, p2, 3);
558
558
  */
559
- mulAdd (k1: BigNumber, p2: Point, k2: BigNumber): Point {
559
+ mulAdd(k1: BigNumber, p2: Point, k2: BigNumber): Point {
560
560
  const points = [this, p2]
561
561
  const coeffs = [k1, k2]
562
562
  return this._endoWnafMulAdd(points, coeffs) as Point
@@ -577,7 +577,7 @@ export default class Point extends BasePoint {
577
577
  * const p2 = new Point(2, 3);
578
578
  * const result = p1.jmulAdd(2, p2, 3);
579
579
  */
580
- jmulAdd (k1: BigNumber, p2: Point, k2: BigNumber): JPoint {
580
+ jmulAdd(k1: BigNumber, p2: Point, k2: BigNumber): JPoint {
581
581
  const points = [this, p2]
582
582
  const coeffs = [k1, k2]
583
583
  return this._endoWnafMulAdd(points, coeffs, true) as JPoint
@@ -596,7 +596,7 @@ export default class Point extends BasePoint {
596
596
  * const p2 = new Point(5, 20);
597
597
  * const areEqual = p1.eq(p2); // returns true
598
598
  */
599
- eq (p: Point): boolean {
599
+ eq(p: Point): boolean {
600
600
  return this === p || (
601
601
  (this.inf === p.inf) &&
602
602
  (this.inf || (this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0)))
@@ -611,7 +611,7 @@ export default class Point extends BasePoint {
611
611
  * const P = new Point('123', '456');
612
612
  * const result = P.neg();
613
613
  */
614
- neg (_precompute?: boolean): Point {
614
+ neg(_precompute?: boolean): Point {
615
615
  if (this.inf) { return this }
616
616
 
617
617
  const res = new Point(this.x, this.y.redNeg())
@@ -647,7 +647,7 @@ export default class Point extends BasePoint {
647
647
  * const p = new Point(5, 20);
648
648
  * const doubledPoint = p.dblp(10); // returns the point after "doubled" 10 times
649
649
  */
650
- dblp (k: number): Point {
650
+ dblp(k: number): Point {
651
651
  /* eslint-disable @typescript-eslint/no-this-alias */
652
652
  let r: Point = this
653
653
  for (let i = 0; i < k; i++) { r = r.dbl() }
@@ -665,7 +665,7 @@ export default class Point extends BasePoint {
665
665
  * const point = new Point(xCoordinate, yCoordinate);
666
666
  * const jacobianPoint = point.toJ();
667
667
  */
668
- toJ (): JPoint {
668
+ toJ(): JPoint {
669
669
  if (this.inf) {
670
670
  return new JPoint(null, null, null)
671
671
  }
@@ -673,7 +673,7 @@ export default class Point extends BasePoint {
673
673
  return res
674
674
  }
675
675
 
676
- private _getBeta (): undefined | Point {
676
+ private _getBeta(): undefined | Point {
677
677
  if (typeof this.curve.endo !== 'object') { return }
678
678
 
679
679
  const pre = this.precomputed
@@ -692,22 +692,22 @@ export default class Point extends BasePoint {
692
692
  beta: null,
693
693
  naf: (pre.naf != null)
694
694
  ? {
695
- wnd: pre.naf.wnd,
696
- points: pre.naf.points.map(endoMul)
697
- }
695
+ wnd: pre.naf.wnd,
696
+ points: pre.naf.points.map(endoMul)
697
+ }
698
698
  : undefined,
699
699
  doubles: (pre.doubles != null)
700
700
  ? {
701
- step: pre.doubles.step,
702
- points: pre.doubles.points.map(endoMul)
703
- }
701
+ step: pre.doubles.step,
702
+ points: pre.doubles.points.map(endoMul)
703
+ }
704
704
  : undefined
705
705
  }
706
706
  }
707
707
  return beta
708
708
  }
709
709
 
710
- private _fixedNafMul (k: BigNumber): Point {
710
+ private _fixedNafMul(k: BigNumber): Point {
711
711
  if (typeof this.precomputed !== 'object' || this.precomputed === null) {
712
712
  throw new Error('_fixedNafMul requires precomputed values for the point')
713
713
  }
@@ -743,7 +743,7 @@ export default class Point extends BasePoint {
743
743
  return a.toP()
744
744
  }
745
745
 
746
- private _wnafMulAdd (
746
+ private _wnafMulAdd(
747
747
  defW: number,
748
748
  points: Point[],
749
749
  coeffs: BigNumber[],
@@ -869,7 +869,7 @@ export default class Point extends BasePoint {
869
869
  }
870
870
  }
871
871
 
872
- private _endoWnafMulAdd (points: Point[], coeffs, jacobianResult?: boolean): BasePoint {
872
+ private _endoWnafMulAdd(points: Point[], coeffs, jacobianResult?: boolean): BasePoint {
873
873
  const npoints = this.curve._endoWnafT1
874
874
  const ncoeffs = this.curve._endoWnafT2
875
875
  let i
@@ -902,7 +902,7 @@ export default class Point extends BasePoint {
902
902
  return res
903
903
  }
904
904
 
905
- private _hasDoubles (k: BigNumber): boolean {
905
+ private _hasDoubles(k: BigNumber): boolean {
906
906
  if (this.precomputed == null) { return false }
907
907
 
908
908
  const doubles = this.precomputed.doubles
@@ -911,7 +911,7 @@ export default class Point extends BasePoint {
911
911
  return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step)
912
912
  };
913
913
 
914
- private _getDoubles (
914
+ private _getDoubles(
915
915
  step?: number,
916
916
  power?: number
917
917
  ): { step: number, points: any[] } {
@@ -936,7 +936,7 @@ export default class Point extends BasePoint {
936
936
  }
937
937
  };
938
938
 
939
- private _getNAFPoints (wnd: number): { wnd: number, points: any[] } {
939
+ private _getNAFPoints(wnd: number): { wnd: number, points: any[] } {
940
940
  if (
941
941
  typeof this.precomputed === 'object' && this.precomputed !== null &&
942
942
  typeof this.precomputed.naf === 'object' && this.precomputed.naf !== null
@@ -2,7 +2,7 @@ import { Wallet } from '../Wallet.interfaces.js'
2
2
  import WalletWire from './WalletWire.js'
3
3
  import { Utils } from '../../primitives/index.js'
4
4
  import calls from './WalletWireCalls.js'
5
- import Certificate from '../../auth/Certificate.js'
5
+ import Certificate from '../../auth/certificates/Certificate.js'
6
6
  import { SecurityLevel } from '../Wallet.interfaces.js'
7
7
 
8
8
  /**
@@ -1,6 +1,6 @@
1
1
  import { AcquireCertificateArgs, AcquireCertificateResult, SecurityLevel, Base64String, BasketStringUnder300Bytes, BEEF, BooleanDefaultFalse, BooleanDefaultTrue, Byte, CertificateFieldNameUnder50Bytes, CreateActionArgs, CreateActionResult, DescriptionString5to50Bytes, DiscoverCertificatesResult, EntityIconURLStringMax500Bytes, EntityNameStringMax100Bytes, HexString, InternalizeActionArgs, ISOTimestampString, KeyIDStringUnder800Bytes, LabelStringUnder300Bytes, ListActionsArgs, ListActionsResult, ListCertificatesResult, ListOutputsArgs, ListOutputsResult, OriginatorDomainNameStringUnder250Bytes, OutpointString, OutputTagStringUnder300Bytes, PositiveInteger, PositiveIntegerDefault10Max10000, PositiveIntegerMax10, PositiveIntegerOrZero, ProtocolString5To400Bytes, ProveCertificateArgs, ProveCertificateResult, PubKeyHex, SatoshiValue, SignActionArgs, SignActionResult, TXIDHexString, VersionString7To30Bytes, Wallet } from '../Wallet.interfaces.js'
2
2
  import WalletWire from './WalletWire.js'
3
- import Certificate from '../../auth/Certificate.js'
3
+ import { Certificate } from '../../auth/index.js'
4
4
  import { Utils } from '../../primitives/index.js'
5
5
  import calls, { CallType } from './WalletWireCalls.js'
6
6
  import { WalletError } from '../WalletError.js'
@@ -1 +0,0 @@
1
- {"version":3,"file":"Certificate.js","sourceRoot":"","sources":["../../../../src/auth/Certificate.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Certificate.js","sourceRoot":"","sources":["../../../../src/auth/Certificate.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Certificate.d.ts","sourceRoot":"","sources":["../../../../src/auth/Certificate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,gCAAgC,EAAE,MAAM,gCAAgC,CAAA;AAG7I;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,WAAW;IAC9B;;OAEG;IACH,IAAI,EAAE,YAAY,CAAA;IAElB;;OAEG;IACH,YAAY,EAAE,YAAY,CAAA;IAE1B;;OAEG;IACH,OAAO,EAAE,SAAS,CAAA;IAElB;;OAEG;IACH,SAAS,EAAE,SAAS,CAAA;IAEpB;;OAEG;IACH,kBAAkB,EAAE,cAAc,CAAA;IAElC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC,gCAAgC,EAAE,MAAM,CAAC,CAAA;IAExD;;MAEE;IACF,SAAS,CAAC,EAAE,SAAS,CAAA;IAErB;;;;;;;;;;OAUG;gBAED,IAAI,EAAE,YAAY,EAClB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,SAAS,EAClB,SAAS,EAAE,SAAS,EACpB,kBAAkB,EAAE,cAAc,EAClC,MAAM,EAAE,MAAM,CAAC,gCAAgC,EAAE,MAAM,CAAC,EACxD,SAAS,CAAC,EAAE,SAAS;IAWvB;;;;;OAKG;IACH,KAAK,CAAE,gBAAgB,GAAE,OAAc,GAAG,MAAM,EAAE;IAkDlD;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAE,GAAG,EAAE,MAAM,EAAE,GAAG,WAAW;IA6D3C;;;;OAIG;IACG,MAAM,IAAK,OAAO,CAAC,OAAO,CAAC;IAejC;;;;;OAKG;IACG,IAAI,CAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAS9C"}