@opentdf/sdk 0.1.0-beta.1701

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 (566) hide show
  1. package/README.md +52 -0
  2. package/dist/cjs/package.json +3 -0
  3. package/dist/cjs/src/access.js +155 -0
  4. package/dist/cjs/src/auth/Eas.js +60 -0
  5. package/dist/cjs/src/auth/auth.js +79 -0
  6. package/dist/cjs/src/auth/oidc-clientcredentials-provider.js +26 -0
  7. package/dist/cjs/src/auth/oidc-externaljwt-provider.js +33 -0
  8. package/dist/cjs/src/auth/oidc-refreshtoken-provider.js +34 -0
  9. package/dist/cjs/src/auth/oidc.js +222 -0
  10. package/dist/cjs/src/auth/providers.js +143 -0
  11. package/dist/cjs/src/encodings/base64.js +154 -0
  12. package/dist/cjs/src/encodings/hex.js +70 -0
  13. package/dist/cjs/src/encodings/index.js +29 -0
  14. package/dist/cjs/src/errors.js +138 -0
  15. package/dist/cjs/src/index.js +344 -0
  16. package/dist/cjs/src/nanotdf/Client.js +296 -0
  17. package/dist/cjs/src/nanotdf/NanoTDF.js +94 -0
  18. package/dist/cjs/src/nanotdf/browser-entry.js +19 -0
  19. package/dist/cjs/src/nanotdf/constants.js +5 -0
  20. package/dist/cjs/src/nanotdf/decrypt.js +17 -0
  21. package/dist/cjs/src/nanotdf/encrypt-dataset.js +38 -0
  22. package/dist/cjs/src/nanotdf/encrypt.js +132 -0
  23. package/dist/cjs/src/nanotdf/enum/CipherEnum.js +13 -0
  24. package/dist/cjs/src/nanotdf/enum/CurveNameEnum.js +15 -0
  25. package/dist/cjs/src/nanotdf/enum/EncodingEnum.js +8 -0
  26. package/dist/cjs/src/nanotdf/enum/PolicyTypeEnum.js +11 -0
  27. package/dist/cjs/src/nanotdf/enum/ProtocolEnum.js +10 -0
  28. package/dist/cjs/src/nanotdf/enum/ResourceLocatorIdentifierEnum.js +11 -0
  29. package/dist/cjs/src/nanotdf/helpers/calculateByCurve.js +29 -0
  30. package/dist/cjs/src/nanotdf/helpers/getHkdfSalt.js +11 -0
  31. package/dist/cjs/src/nanotdf/index.js +25 -0
  32. package/dist/cjs/src/nanotdf/interfaces/PolicyInterface.js +3 -0
  33. package/dist/cjs/src/nanotdf/models/Ciphers.js +61 -0
  34. package/dist/cjs/src/nanotdf/models/DefaultParams.js +27 -0
  35. package/dist/cjs/src/nanotdf/models/EcCurves.js +39 -0
  36. package/dist/cjs/src/nanotdf/models/Header.js +255 -0
  37. package/dist/cjs/src/nanotdf/models/Payload.js +158 -0
  38. package/dist/cjs/src/nanotdf/models/Policy/AbstractPolicy.js +73 -0
  39. package/dist/cjs/src/nanotdf/models/Policy/EmbeddedPolicy.js +82 -0
  40. package/dist/cjs/src/nanotdf/models/Policy/PolicyFactory.js +38 -0
  41. package/dist/cjs/src/nanotdf/models/Policy/RemotePolicy.js +62 -0
  42. package/dist/cjs/src/nanotdf/models/ResourceLocator.js +211 -0
  43. package/dist/cjs/src/nanotdf/models/Signature.js +77 -0
  44. package/dist/cjs/src/nanotdf-crypto/ciphers.js +17 -0
  45. package/dist/cjs/src/nanotdf-crypto/decrypt.js +24 -0
  46. package/dist/cjs/src/nanotdf-crypto/digest.js +7 -0
  47. package/dist/cjs/src/nanotdf-crypto/ecdsaSignature.js +83 -0
  48. package/dist/cjs/src/nanotdf-crypto/encrypt.js +24 -0
  49. package/dist/cjs/src/nanotdf-crypto/enums.js +52 -0
  50. package/dist/cjs/src/nanotdf-crypto/exportCryptoKey.js +20 -0
  51. package/dist/cjs/src/nanotdf-crypto/generateKeyPair.js +13 -0
  52. package/dist/cjs/src/nanotdf-crypto/generateRandomNumber.js +12 -0
  53. package/dist/cjs/src/nanotdf-crypto/importRawKey.js +18 -0
  54. package/dist/cjs/src/nanotdf-crypto/index.js +52 -0
  55. package/dist/cjs/src/nanotdf-crypto/keyAgreement.js +91 -0
  56. package/dist/cjs/src/nanotdf-crypto/pemPublicToCrypto.js +225 -0
  57. package/dist/cjs/src/policy/api.js +58 -0
  58. package/dist/cjs/src/policy/attributes.js +3 -0
  59. package/dist/cjs/src/policy/granter.js +146 -0
  60. package/dist/cjs/src/tdf/AttributeObject.js +15 -0
  61. package/dist/cjs/src/tdf/AttributeObjectJwt.js +3 -0
  62. package/dist/cjs/src/tdf/Crypto.js +47 -0
  63. package/dist/cjs/src/tdf/EntityObject.js +3 -0
  64. package/dist/cjs/src/tdf/NanoTDF/NanoTDF.js +38 -0
  65. package/dist/cjs/src/tdf/Policy.js +50 -0
  66. package/dist/cjs/src/tdf/PolicyObject.js +3 -0
  67. package/dist/cjs/src/tdf/TypedArray.js +3 -0
  68. package/dist/cjs/src/tdf/index.js +35 -0
  69. package/dist/cjs/src/types/index.js +3 -0
  70. package/dist/cjs/src/utils.js +147 -0
  71. package/dist/cjs/src/version.js +12 -0
  72. package/dist/cjs/tdf3/index.js +57 -0
  73. package/dist/cjs/tdf3/src/assertions.js +118 -0
  74. package/dist/cjs/tdf3/src/binary.js +153 -0
  75. package/dist/cjs/tdf3/src/ciphers/aes-gcm-cipher.js +56 -0
  76. package/dist/cjs/tdf3/src/ciphers/algorithms.js +8 -0
  77. package/dist/cjs/tdf3/src/ciphers/index.js +8 -0
  78. package/dist/cjs/tdf3/src/ciphers/symmetric-cipher-base.js +22 -0
  79. package/dist/cjs/tdf3/src/client/DecoratedReadableStream.js +116 -0
  80. package/dist/cjs/tdf3/src/client/builders.js +561 -0
  81. package/dist/cjs/tdf3/src/client/index.js +460 -0
  82. package/dist/cjs/tdf3/src/client/validation.js +63 -0
  83. package/dist/cjs/tdf3/src/crypto/crypto-utils.js +116 -0
  84. package/dist/cjs/tdf3/src/crypto/declarations.js +8 -0
  85. package/dist/cjs/tdf3/src/crypto/index.js +315 -0
  86. package/dist/cjs/tdf3/src/index.js +34 -0
  87. package/dist/cjs/tdf3/src/models/attribute-set.js +122 -0
  88. package/dist/cjs/tdf3/src/models/encryption-information.js +90 -0
  89. package/dist/cjs/tdf3/src/models/index.js +25 -0
  90. package/dist/cjs/tdf3/src/models/key-access.js +103 -0
  91. package/dist/cjs/tdf3/src/models/manifest.js +3 -0
  92. package/dist/cjs/tdf3/src/models/payload.js +3 -0
  93. package/dist/cjs/tdf3/src/models/policy.js +24 -0
  94. package/dist/cjs/tdf3/src/models/upsert-response.js +3 -0
  95. package/dist/cjs/tdf3/src/tdf.js +907 -0
  96. package/dist/cjs/tdf3/src/templates/default.html.js +98 -0
  97. package/dist/cjs/tdf3/src/templates/escaper.js +15 -0
  98. package/dist/cjs/tdf3/src/templates/index.js +12 -0
  99. package/dist/cjs/tdf3/src/utils/buffer-crc32.js +48 -0
  100. package/dist/cjs/tdf3/src/utils/chunkers.js +106 -0
  101. package/dist/cjs/tdf3/src/utils/index.js +296 -0
  102. package/dist/cjs/tdf3/src/utils/keysplit.js +61 -0
  103. package/dist/cjs/tdf3/src/utils/zip-reader.js +253 -0
  104. package/dist/cjs/tdf3/src/utils/zip-writer.js +308 -0
  105. package/dist/cjs/tdf3/src/version.js +6 -0
  106. package/dist/types/src/access.d.ts +47 -0
  107. package/dist/types/src/access.d.ts.map +1 -0
  108. package/dist/types/src/auth/Eas.d.ts +34 -0
  109. package/dist/types/src/auth/Eas.d.ts.map +1 -0
  110. package/dist/types/src/auth/auth.d.ts +86 -0
  111. package/dist/types/src/auth/auth.d.ts.map +1 -0
  112. package/dist/types/src/auth/oidc-clientcredentials-provider.d.ts +9 -0
  113. package/dist/types/src/auth/oidc-clientcredentials-provider.d.ts.map +1 -0
  114. package/dist/types/src/auth/oidc-externaljwt-provider.d.ts +10 -0
  115. package/dist/types/src/auth/oidc-externaljwt-provider.d.ts.map +1 -0
  116. package/dist/types/src/auth/oidc-refreshtoken-provider.d.ts +10 -0
  117. package/dist/types/src/auth/oidc-refreshtoken-provider.d.ts.map +1 -0
  118. package/dist/types/src/auth/oidc.d.ts +104 -0
  119. package/dist/types/src/auth/oidc.d.ts.map +1 -0
  120. package/dist/types/src/auth/providers.d.ts +67 -0
  121. package/dist/types/src/auth/providers.d.ts.map +1 -0
  122. package/dist/types/src/encodings/base64.d.ts +18 -0
  123. package/dist/types/src/encodings/base64.d.ts.map +1 -0
  124. package/dist/types/src/encodings/hex.d.ts +5 -0
  125. package/dist/types/src/encodings/hex.d.ts.map +1 -0
  126. package/dist/types/src/encodings/index.d.ts +3 -0
  127. package/dist/types/src/encodings/index.d.ts.map +1 -0
  128. package/dist/types/src/errors.d.ts +72 -0
  129. package/dist/types/src/errors.d.ts.map +1 -0
  130. package/dist/types/src/index.d.ts +138 -0
  131. package/dist/types/src/index.d.ts.map +1 -0
  132. package/dist/types/src/nanotdf/Client.d.ts +95 -0
  133. package/dist/types/src/nanotdf/Client.d.ts.map +1 -0
  134. package/dist/types/src/nanotdf/NanoTDF.d.ts +25 -0
  135. package/dist/types/src/nanotdf/NanoTDF.d.ts.map +1 -0
  136. package/dist/types/src/nanotdf/browser-entry.d.ts +17 -0
  137. package/dist/types/src/nanotdf/browser-entry.d.ts.map +1 -0
  138. package/dist/types/src/nanotdf/constants.d.ts +2 -0
  139. package/dist/types/src/nanotdf/constants.d.ts.map +1 -0
  140. package/dist/types/src/nanotdf/decrypt.d.ts +9 -0
  141. package/dist/types/src/nanotdf/decrypt.d.ts.map +1 -0
  142. package/dist/types/src/nanotdf/encrypt-dataset.d.ts +12 -0
  143. package/dist/types/src/nanotdf/encrypt-dataset.d.ts.map +1 -0
  144. package/dist/types/src/nanotdf/encrypt.d.ts +14 -0
  145. package/dist/types/src/nanotdf/encrypt.d.ts.map +1 -0
  146. package/dist/types/src/nanotdf/enum/CipherEnum.d.ts +10 -0
  147. package/dist/types/src/nanotdf/enum/CipherEnum.d.ts.map +1 -0
  148. package/dist/types/src/nanotdf/enum/CurveNameEnum.d.ts +12 -0
  149. package/dist/types/src/nanotdf/enum/CurveNameEnum.d.ts.map +1 -0
  150. package/dist/types/src/nanotdf/enum/EncodingEnum.d.ts +5 -0
  151. package/dist/types/src/nanotdf/enum/EncodingEnum.d.ts.map +1 -0
  152. package/dist/types/src/nanotdf/enum/PolicyTypeEnum.d.ts +8 -0
  153. package/dist/types/src/nanotdf/enum/PolicyTypeEnum.d.ts.map +1 -0
  154. package/dist/types/src/nanotdf/enum/ProtocolEnum.d.ts +7 -0
  155. package/dist/types/src/nanotdf/enum/ProtocolEnum.d.ts.map +1 -0
  156. package/dist/types/src/nanotdf/enum/ResourceLocatorIdentifierEnum.d.ts +8 -0
  157. package/dist/types/src/nanotdf/enum/ResourceLocatorIdentifierEnum.d.ts.map +1 -0
  158. package/dist/types/src/nanotdf/helpers/calculateByCurve.d.ts +20 -0
  159. package/dist/types/src/nanotdf/helpers/calculateByCurve.d.ts.map +1 -0
  160. package/dist/types/src/nanotdf/helpers/getHkdfSalt.d.ts +9 -0
  161. package/dist/types/src/nanotdf/helpers/getHkdfSalt.d.ts.map +1 -0
  162. package/dist/types/src/nanotdf/index.d.ts +9 -0
  163. package/dist/types/src/nanotdf/index.d.ts.map +1 -0
  164. package/dist/types/src/nanotdf/interfaces/PolicyInterface.d.ts +17 -0
  165. package/dist/types/src/nanotdf/interfaces/PolicyInterface.d.ts.map +1 -0
  166. package/dist/types/src/nanotdf/models/Ciphers.d.ts +14 -0
  167. package/dist/types/src/nanotdf/models/Ciphers.d.ts.map +1 -0
  168. package/dist/types/src/nanotdf/models/DefaultParams.d.ts +21 -0
  169. package/dist/types/src/nanotdf/models/DefaultParams.d.ts.map +1 -0
  170. package/dist/types/src/nanotdf/models/EcCurves.d.ts +15 -0
  171. package/dist/types/src/nanotdf/models/EcCurves.d.ts.map +1 -0
  172. package/dist/types/src/nanotdf/models/Header.d.ts +73 -0
  173. package/dist/types/src/nanotdf/models/Header.d.ts.map +1 -0
  174. package/dist/types/src/nanotdf/models/Payload.d.ts +47 -0
  175. package/dist/types/src/nanotdf/models/Payload.d.ts.map +1 -0
  176. package/dist/types/src/nanotdf/models/Policy/AbstractPolicy.d.ts +52 -0
  177. package/dist/types/src/nanotdf/models/Policy/AbstractPolicy.d.ts.map +1 -0
  178. package/dist/types/src/nanotdf/models/Policy/EmbeddedPolicy.d.ts +35 -0
  179. package/dist/types/src/nanotdf/models/Policy/EmbeddedPolicy.d.ts.map +1 -0
  180. package/dist/types/src/nanotdf/models/Policy/PolicyFactory.d.ts +11 -0
  181. package/dist/types/src/nanotdf/models/Policy/PolicyFactory.d.ts.map +1 -0
  182. package/dist/types/src/nanotdf/models/Policy/RemotePolicy.d.ts +31 -0
  183. package/dist/types/src/nanotdf/models/Policy/RemotePolicy.d.ts.map +1 -0
  184. package/dist/types/src/nanotdf/models/ResourceLocator.d.ts +65 -0
  185. package/dist/types/src/nanotdf/models/ResourceLocator.d.ts.map +1 -0
  186. package/dist/types/src/nanotdf/models/Signature.d.ts +33 -0
  187. package/dist/types/src/nanotdf/models/Signature.d.ts.map +1 -0
  188. package/dist/types/src/nanotdf-crypto/ciphers.d.ts +8 -0
  189. package/dist/types/src/nanotdf-crypto/ciphers.d.ts.map +1 -0
  190. package/dist/types/src/nanotdf-crypto/decrypt.d.ts +14 -0
  191. package/dist/types/src/nanotdf-crypto/decrypt.d.ts.map +1 -0
  192. package/dist/types/src/nanotdf-crypto/digest.d.ts +3 -0
  193. package/dist/types/src/nanotdf-crypto/digest.d.ts.map +1 -0
  194. package/dist/types/src/nanotdf-crypto/ecdsaSignature.d.ts +35 -0
  195. package/dist/types/src/nanotdf-crypto/ecdsaSignature.d.ts.map +1 -0
  196. package/dist/types/src/nanotdf-crypto/encrypt.d.ts +14 -0
  197. package/dist/types/src/nanotdf-crypto/encrypt.d.ts.map +1 -0
  198. package/dist/types/src/nanotdf-crypto/enums.d.ts +42 -0
  199. package/dist/types/src/nanotdf-crypto/enums.d.ts.map +1 -0
  200. package/dist/types/src/nanotdf-crypto/exportCryptoKey.d.ts +7 -0
  201. package/dist/types/src/nanotdf-crypto/exportCryptoKey.d.ts.map +1 -0
  202. package/dist/types/src/nanotdf-crypto/generateKeyPair.d.ts +10 -0
  203. package/dist/types/src/nanotdf-crypto/generateKeyPair.d.ts.map +1 -0
  204. package/dist/types/src/nanotdf-crypto/generateRandomNumber.d.ts +5 -0
  205. package/dist/types/src/nanotdf-crypto/generateRandomNumber.d.ts.map +1 -0
  206. package/dist/types/src/nanotdf-crypto/importRawKey.d.ts +13 -0
  207. package/dist/types/src/nanotdf-crypto/importRawKey.d.ts.map +1 -0
  208. package/dist/types/src/nanotdf-crypto/index.d.ts +12 -0
  209. package/dist/types/src/nanotdf-crypto/index.d.ts.map +1 -0
  210. package/dist/types/src/nanotdf-crypto/keyAgreement.d.ts +28 -0
  211. package/dist/types/src/nanotdf-crypto/keyAgreement.d.ts.map +1 -0
  212. package/dist/types/src/nanotdf-crypto/pemPublicToCrypto.d.ts +28 -0
  213. package/dist/types/src/nanotdf-crypto/pemPublicToCrypto.d.ts.map +1 -0
  214. package/dist/types/src/policy/api.d.ts +4 -0
  215. package/dist/types/src/policy/api.d.ts.map +1 -0
  216. package/dist/types/src/policy/attributes.d.ts +95 -0
  217. package/dist/types/src/policy/attributes.d.ts.map +1 -0
  218. package/dist/types/src/policy/granter.d.ts +23 -0
  219. package/dist/types/src/policy/granter.d.ts.map +1 -0
  220. package/dist/types/src/tdf/AttributeObject.d.ts +13 -0
  221. package/dist/types/src/tdf/AttributeObject.d.ts.map +1 -0
  222. package/dist/types/src/tdf/AttributeObjectJwt.d.ts +4 -0
  223. package/dist/types/src/tdf/AttributeObjectJwt.d.ts.map +1 -0
  224. package/dist/types/src/tdf/Crypto.d.ts +37 -0
  225. package/dist/types/src/tdf/Crypto.d.ts.map +1 -0
  226. package/dist/types/src/tdf/EntityObject.d.ts +18 -0
  227. package/dist/types/src/tdf/EntityObject.d.ts.map +1 -0
  228. package/dist/types/src/tdf/NanoTDF/NanoTDF.d.ts +99 -0
  229. package/dist/types/src/tdf/NanoTDF/NanoTDF.d.ts.map +1 -0
  230. package/dist/types/src/tdf/Policy.d.ts +28 -0
  231. package/dist/types/src/tdf/Policy.d.ts.map +1 -0
  232. package/dist/types/src/tdf/PolicyObject.d.ts +11 -0
  233. package/dist/types/src/tdf/PolicyObject.d.ts.map +1 -0
  234. package/dist/types/src/tdf/TypedArray.d.ts +3 -0
  235. package/dist/types/src/tdf/TypedArray.d.ts.map +1 -0
  236. package/dist/types/src/tdf/index.d.ts +7 -0
  237. package/dist/types/src/tdf/index.d.ts.map +1 -0
  238. package/dist/types/src/types/index.d.ts +45 -0
  239. package/dist/types/src/types/index.d.ts.map +1 -0
  240. package/dist/types/src/utils.d.ts +45 -0
  241. package/dist/types/src/utils.d.ts.map +1 -0
  242. package/dist/types/src/version.d.ts +9 -0
  243. package/dist/types/src/version.d.ts.map +1 -0
  244. package/dist/types/tdf3/index.d.ts +16 -0
  245. package/dist/types/tdf3/index.d.ts.map +1 -0
  246. package/dist/types/tdf3/src/assertions.d.ts +63 -0
  247. package/dist/types/tdf3/src/assertions.d.ts.map +1 -0
  248. package/dist/types/tdf3/src/binary.d.ts +38 -0
  249. package/dist/types/tdf3/src/binary.d.ts.map +1 -0
  250. package/dist/types/tdf3/src/ciphers/aes-gcm-cipher.d.ts +18 -0
  251. package/dist/types/tdf3/src/ciphers/aes-gcm-cipher.d.ts.map +1 -0
  252. package/dist/types/tdf3/src/ciphers/algorithms.d.ts +4 -0
  253. package/dist/types/tdf3/src/ciphers/algorithms.d.ts.map +1 -0
  254. package/dist/types/tdf3/src/ciphers/index.d.ts +3 -0
  255. package/dist/types/tdf3/src/ciphers/index.d.ts.map +1 -0
  256. package/dist/types/tdf3/src/ciphers/symmetric-cipher-base.d.ts +14 -0
  257. package/dist/types/tdf3/src/ciphers/symmetric-cipher-base.d.ts.map +1 -0
  258. package/dist/types/tdf3/src/client/DecoratedReadableStream.d.ts +53 -0
  259. package/dist/types/tdf3/src/client/DecoratedReadableStream.d.ts.map +1 -0
  260. package/dist/types/tdf3/src/client/builders.d.ts +436 -0
  261. package/dist/types/tdf3/src/client/builders.d.ts.map +1 -0
  262. package/dist/types/tdf3/src/client/index.d.ts +139 -0
  263. package/dist/types/tdf3/src/client/index.d.ts.map +1 -0
  264. package/dist/types/tdf3/src/client/validation.d.ts +8 -0
  265. package/dist/types/tdf3/src/client/validation.d.ts.map +1 -0
  266. package/dist/types/tdf3/src/crypto/crypto-utils.d.ts +34 -0
  267. package/dist/types/tdf3/src/crypto/crypto-utils.d.ts.map +1 -0
  268. package/dist/types/tdf3/src/crypto/declarations.d.ts +60 -0
  269. package/dist/types/tdf3/src/crypto/declarations.d.ts.map +1 -0
  270. package/dist/types/tdf3/src/crypto/index.d.ts +103 -0
  271. package/dist/types/tdf3/src/crypto/index.d.ts.map +1 -0
  272. package/dist/types/tdf3/src/index.d.ts +5 -0
  273. package/dist/types/tdf3/src/index.d.ts.map +1 -0
  274. package/dist/types/tdf3/src/models/attribute-set.d.ts +65 -0
  275. package/dist/types/tdf3/src/models/attribute-set.d.ts.map +1 -0
  276. package/dist/types/tdf3/src/models/encryption-information.d.ts +49 -0
  277. package/dist/types/tdf3/src/models/encryption-information.d.ts.map +1 -0
  278. package/dist/types/tdf3/src/models/index.d.ts +9 -0
  279. package/dist/types/tdf3/src/models/index.d.ts.map +1 -0
  280. package/dist/types/tdf3/src/models/key-access.d.ts +42 -0
  281. package/dist/types/tdf3/src/models/key-access.d.ts.map +1 -0
  282. package/dist/types/tdf3/src/models/manifest.d.ts +9 -0
  283. package/dist/types/tdf3/src/models/manifest.d.ts.map +1 -0
  284. package/dist/types/tdf3/src/models/payload.d.ts +7 -0
  285. package/dist/types/tdf3/src/models/payload.d.ts.map +1 -0
  286. package/dist/types/tdf3/src/models/policy.d.ts +13 -0
  287. package/dist/types/tdf3/src/models/policy.d.ts.map +1 -0
  288. package/dist/types/tdf3/src/models/upsert-response.d.ts +16 -0
  289. package/dist/types/tdf3/src/models/upsert-response.d.ts.map +1 -0
  290. package/dist/types/tdf3/src/tdf.d.ts +152 -0
  291. package/dist/types/tdf3/src/tdf.d.ts.map +1 -0
  292. package/dist/types/tdf3/src/templates/default.html.d.ts +8 -0
  293. package/dist/types/tdf3/src/templates/default.html.d.ts.map +1 -0
  294. package/dist/types/tdf3/src/templates/escaper.d.ts +6 -0
  295. package/dist/types/tdf3/src/templates/escaper.d.ts.map +1 -0
  296. package/dist/types/tdf3/src/templates/index.d.ts +3 -0
  297. package/dist/types/tdf3/src/templates/index.d.ts.map +1 -0
  298. package/dist/types/tdf3/src/utils/buffer-crc32.d.ts +2 -0
  299. package/dist/types/tdf3/src/utils/buffer-crc32.d.ts.map +1 -0
  300. package/dist/types/tdf3/src/utils/chunkers.d.ts +29 -0
  301. package/dist/types/tdf3/src/utils/chunkers.d.ts.map +1 -0
  302. package/dist/types/tdf3/src/utils/index.d.ts +36 -0
  303. package/dist/types/tdf3/src/utils/index.d.ts.map +1 -0
  304. package/dist/types/tdf3/src/utils/keysplit.d.ts +19 -0
  305. package/dist/types/tdf3/src/utils/keysplit.d.ts.map +1 -0
  306. package/dist/types/tdf3/src/utils/zip-reader.d.ts +63 -0
  307. package/dist/types/tdf3/src/utils/zip-reader.d.ts.map +1 -0
  308. package/dist/types/tdf3/src/utils/zip-writer.d.ts +35 -0
  309. package/dist/types/tdf3/src/utils/zip-writer.d.ts.map +1 -0
  310. package/dist/types/tdf3/src/version.d.ts +3 -0
  311. package/dist/types/tdf3/src/version.d.ts.map +1 -0
  312. package/dist/web/package.json +3 -0
  313. package/dist/web/src/access.js +147 -0
  314. package/dist/web/src/auth/Eas.js +55 -0
  315. package/dist/web/src/auth/auth.js +71 -0
  316. package/dist/web/src/auth/oidc-clientcredentials-provider.js +22 -0
  317. package/dist/web/src/auth/oidc-externaljwt-provider.js +29 -0
  318. package/dist/web/src/auth/oidc-refreshtoken-provider.js +30 -0
  319. package/dist/web/src/auth/oidc.js +215 -0
  320. package/dist/web/src/auth/providers.js +119 -0
  321. package/dist/web/src/encodings/base64.js +147 -0
  322. package/dist/web/src/encodings/hex.js +63 -0
  323. package/dist/web/src/encodings/index.js +3 -0
  324. package/dist/web/src/errors.js +123 -0
  325. package/dist/web/src/index.js +313 -0
  326. package/dist/web/src/nanotdf/Client.js +268 -0
  327. package/dist/web/src/nanotdf/NanoTDF.js +89 -0
  328. package/dist/web/src/nanotdf/browser-entry.js +14 -0
  329. package/dist/web/src/nanotdf/constants.js +2 -0
  330. package/dist/web/src/nanotdf/decrypt.js +14 -0
  331. package/dist/web/src/nanotdf/encrypt-dataset.js +32 -0
  332. package/dist/web/src/nanotdf/encrypt.js +126 -0
  333. package/dist/web/src/nanotdf/enum/CipherEnum.js +11 -0
  334. package/dist/web/src/nanotdf/enum/CurveNameEnum.js +13 -0
  335. package/dist/web/src/nanotdf/enum/EncodingEnum.js +6 -0
  336. package/dist/web/src/nanotdf/enum/PolicyTypeEnum.js +9 -0
  337. package/dist/web/src/nanotdf/enum/ProtocolEnum.js +8 -0
  338. package/dist/web/src/nanotdf/enum/ResourceLocatorIdentifierEnum.js +9 -0
  339. package/dist/web/src/nanotdf/helpers/calculateByCurve.js +24 -0
  340. package/dist/web/src/nanotdf/helpers/getHkdfSalt.js +8 -0
  341. package/dist/web/src/nanotdf/index.js +11 -0
  342. package/dist/web/src/nanotdf/interfaces/PolicyInterface.js +2 -0
  343. package/dist/web/src/nanotdf/models/Ciphers.js +54 -0
  344. package/dist/web/src/nanotdf/models/DefaultParams.js +22 -0
  345. package/dist/web/src/nanotdf/models/EcCurves.js +32 -0
  346. package/dist/web/src/nanotdf/models/Header.js +250 -0
  347. package/dist/web/src/nanotdf/models/Payload.js +156 -0
  348. package/dist/web/src/nanotdf/models/Policy/AbstractPolicy.js +71 -0
  349. package/dist/web/src/nanotdf/models/Policy/EmbeddedPolicy.js +77 -0
  350. package/dist/web/src/nanotdf/models/Policy/PolicyFactory.js +33 -0
  351. package/dist/web/src/nanotdf/models/Policy/RemotePolicy.js +57 -0
  352. package/dist/web/src/nanotdf/models/ResourceLocator.js +206 -0
  353. package/dist/web/src/nanotdf/models/Signature.js +74 -0
  354. package/dist/web/src/nanotdf-crypto/ciphers.js +14 -0
  355. package/dist/web/src/nanotdf-crypto/decrypt.js +21 -0
  356. package/dist/web/src/nanotdf-crypto/digest.js +4 -0
  357. package/dist/web/src/nanotdf-crypto/ecdsaSignature.js +77 -0
  358. package/dist/web/src/nanotdf-crypto/encrypt.js +21 -0
  359. package/dist/web/src/nanotdf-crypto/enums.js +49 -0
  360. package/dist/web/src/nanotdf-crypto/exportCryptoKey.js +17 -0
  361. package/dist/web/src/nanotdf-crypto/generateKeyPair.js +10 -0
  362. package/dist/web/src/nanotdf-crypto/generateRandomNumber.js +9 -0
  363. package/dist/web/src/nanotdf-crypto/importRawKey.js +15 -0
  364. package/dist/web/src/nanotdf-crypto/index.js +12 -0
  365. package/dist/web/src/nanotdf-crypto/keyAgreement.js +87 -0
  366. package/dist/web/src/nanotdf-crypto/pemPublicToCrypto.js +197 -0
  367. package/dist/web/src/policy/api.js +54 -0
  368. package/dist/web/src/policy/attributes.js +2 -0
  369. package/dist/web/src/policy/granter.js +141 -0
  370. package/dist/web/src/tdf/AttributeObject.js +11 -0
  371. package/dist/web/src/tdf/AttributeObjectJwt.js +2 -0
  372. package/dist/web/src/tdf/Crypto.js +44 -0
  373. package/dist/web/src/tdf/EntityObject.js +2 -0
  374. package/dist/web/src/tdf/NanoTDF/NanoTDF.js +35 -0
  375. package/dist/web/src/tdf/Policy.js +48 -0
  376. package/dist/web/src/tdf/PolicyObject.js +2 -0
  377. package/dist/web/src/tdf/TypedArray.js +2 -0
  378. package/dist/web/src/tdf/index.js +4 -0
  379. package/dist/web/src/types/index.js +2 -0
  380. package/dist/web/src/utils.js +133 -0
  381. package/dist/web/src/version.js +9 -0
  382. package/dist/web/tdf3/index.js +13 -0
  383. package/dist/web/tdf3/src/assertions.js +111 -0
  384. package/dist/web/tdf3/src/binary.js +149 -0
  385. package/dist/web/tdf3/src/ciphers/aes-gcm-cipher.js +52 -0
  386. package/dist/web/tdf3/src/ciphers/algorithms.js +5 -0
  387. package/dist/web/tdf3/src/ciphers/index.js +3 -0
  388. package/dist/web/tdf3/src/ciphers/symmetric-cipher-base.js +18 -0
  389. package/dist/web/tdf3/src/client/DecoratedReadableStream.js +107 -0
  390. package/dist/web/tdf3/src/client/builders.js +557 -0
  391. package/dist/web/tdf3/src/client/index.js +423 -0
  392. package/dist/web/tdf3/src/client/validation.js +58 -0
  393. package/dist/web/tdf3/src/crypto/crypto-utils.js +107 -0
  394. package/dist/web/tdf3/src/crypto/declarations.js +5 -0
  395. package/dist/web/tdf3/src/crypto/index.js +296 -0
  396. package/dist/web/tdf3/src/index.js +5 -0
  397. package/dist/web/tdf3/src/models/attribute-set.js +118 -0
  398. package/dist/web/tdf3/src/models/encryption-information.js +86 -0
  399. package/dist/web/tdf3/src/models/index.js +9 -0
  400. package/dist/web/tdf3/src/models/key-access.js +74 -0
  401. package/dist/web/tdf3/src/models/manifest.js +2 -0
  402. package/dist/web/tdf3/src/models/payload.js +2 -0
  403. package/dist/web/tdf3/src/models/policy.js +20 -0
  404. package/dist/web/tdf3/src/models/upsert-response.js +2 -0
  405. package/dist/web/tdf3/src/tdf.js +866 -0
  406. package/dist/web/tdf3/src/templates/default.html.js +96 -0
  407. package/dist/web/tdf3/src/templates/escaper.js +10 -0
  408. package/dist/web/tdf3/src/templates/index.js +3 -0
  409. package/dist/web/tdf3/src/utils/buffer-crc32.js +44 -0
  410. package/dist/web/tdf3/src/utils/chunkers.js +96 -0
  411. package/dist/web/tdf3/src/utils/index.js +248 -0
  412. package/dist/web/tdf3/src/utils/keysplit.js +55 -0
  413. package/dist/web/tdf3/src/utils/zip-reader.js +247 -0
  414. package/dist/web/tdf3/src/utils/zip-writer.js +302 -0
  415. package/dist/web/tdf3/src/version.js +3 -0
  416. package/package.json +126 -0
  417. package/src/access.ts +198 -0
  418. package/src/auth/Eas.ts +79 -0
  419. package/src/auth/auth.ts +141 -0
  420. package/src/auth/oidc-clientcredentials-provider.ts +32 -0
  421. package/src/auth/oidc-externaljwt-provider.ts +41 -0
  422. package/src/auth/oidc-refreshtoken-provider.ts +41 -0
  423. package/src/auth/oidc.ts +307 -0
  424. package/src/auth/providers.ts +139 -0
  425. package/src/encodings/base64.ts +160 -0
  426. package/src/encodings/hex.ts +69 -0
  427. package/src/encodings/index.ts +2 -0
  428. package/src/errors.ts +113 -0
  429. package/src/index.ts +441 -0
  430. package/src/nanotdf/Client.ts +349 -0
  431. package/src/nanotdf/NanoTDF.ts +121 -0
  432. package/src/nanotdf/browser-entry.ts +20 -0
  433. package/src/nanotdf/constants.ts +1 -0
  434. package/src/nanotdf/decrypt.ts +19 -0
  435. package/src/nanotdf/encrypt-dataset.ts +52 -0
  436. package/src/nanotdf/encrypt.ts +197 -0
  437. package/src/nanotdf/enum/CipherEnum.ts +10 -0
  438. package/src/nanotdf/enum/CurveNameEnum.ts +12 -0
  439. package/src/nanotdf/enum/EncodingEnum.ts +5 -0
  440. package/src/nanotdf/enum/PolicyTypeEnum.ts +8 -0
  441. package/src/nanotdf/enum/ProtocolEnum.ts +7 -0
  442. package/src/nanotdf/enum/ResourceLocatorIdentifierEnum.ts +8 -0
  443. package/src/nanotdf/helpers/calculateByCurve.ts +26 -0
  444. package/src/nanotdf/helpers/getHkdfSalt.ts +15 -0
  445. package/src/nanotdf/index.ts +10 -0
  446. package/src/nanotdf/interfaces/PolicyInterface.ts +27 -0
  447. package/src/nanotdf/models/Ciphers.ts +67 -0
  448. package/src/nanotdf/models/DefaultParams.ts +24 -0
  449. package/src/nanotdf/models/EcCurves.ts +40 -0
  450. package/src/nanotdf/models/Header.ts +322 -0
  451. package/src/nanotdf/models/Payload.ts +196 -0
  452. package/src/nanotdf/models/Policy/AbstractPolicy.ts +90 -0
  453. package/src/nanotdf/models/Policy/EmbeddedPolicy.ts +101 -0
  454. package/src/nanotdf/models/Policy/PolicyFactory.ts +48 -0
  455. package/src/nanotdf/models/Policy/RemotePolicy.ts +74 -0
  456. package/src/nanotdf/models/ResourceLocator.ts +212 -0
  457. package/src/nanotdf/models/Signature.ts +85 -0
  458. package/src/nanotdf-crypto/ciphers.ts +13 -0
  459. package/src/nanotdf-crypto/decrypt.ts +30 -0
  460. package/src/nanotdf-crypto/digest.ts +8 -0
  461. package/src/nanotdf-crypto/ecdsaSignature.ts +109 -0
  462. package/src/nanotdf-crypto/encrypt.ts +30 -0
  463. package/src/nanotdf-crypto/enums.ts +47 -0
  464. package/src/nanotdf-crypto/exportCryptoKey.ts +17 -0
  465. package/src/nanotdf-crypto/generateKeyPair.ts +19 -0
  466. package/src/nanotdf-crypto/generateRandomNumber.ts +8 -0
  467. package/src/nanotdf-crypto/importRawKey.ts +19 -0
  468. package/src/nanotdf-crypto/index.ts +11 -0
  469. package/src/nanotdf-crypto/keyAgreement.ts +139 -0
  470. package/src/nanotdf-crypto/pemPublicToCrypto.ts +232 -0
  471. package/src/package-lock.json +6 -0
  472. package/src/package.json +3 -0
  473. package/src/platform/authorization/authorization_connect.d.ts +44 -0
  474. package/src/platform/authorization/authorization_connect.js +44 -0
  475. package/src/platform/authorization/authorization_pb.d.ts +707 -0
  476. package/src/platform/authorization/authorization_pb.js +372 -0
  477. package/src/platform/common/common_pb.d.ts +129 -0
  478. package/src/platform/common/common_pb.js +58 -0
  479. package/src/platform/entityresolution/entity_resolution_connect.d.ts +35 -0
  480. package/src/platform/entityresolution/entity_resolution_connect.js +35 -0
  481. package/src/platform/entityresolution/entity_resolution_pb.d.ts +242 -0
  482. package/src/platform/entityresolution/entity_resolution_pb.js +139 -0
  483. package/src/platform/kas/kas_connect.d.ts +59 -0
  484. package/src/platform/kas/kas_connect.js +59 -0
  485. package/src/platform/kas/kas_pb.d.ts +200 -0
  486. package/src/platform/kas/kas_pb.js +84 -0
  487. package/src/platform/policy/attributes/attributes_connect.d.ts +168 -0
  488. package/src/platform/policy/attributes/attributes_connect.js +168 -0
  489. package/src/platform/policy/attributes/attributes_pb.d.ts +929 -0
  490. package/src/platform/policy/attributes/attributes_pb.js +363 -0
  491. package/src/platform/policy/kasregistry/key_access_server_registry_connect.d.ts +62 -0
  492. package/src/platform/policy/kasregistry/key_access_server_registry_connect.js +62 -0
  493. package/src/platform/policy/kasregistry/key_access_server_registry_pb.d.ts +283 -0
  494. package/src/platform/policy/kasregistry/key_access_server_registry_pb.js +113 -0
  495. package/src/platform/policy/namespaces/namespaces_connect.d.ts +62 -0
  496. package/src/platform/policy/namespaces/namespaces_connect.js +62 -0
  497. package/src/platform/policy/namespaces/namespaces_pb.d.ts +270 -0
  498. package/src/platform/policy/namespaces/namespaces_pb.js +110 -0
  499. package/src/platform/policy/objects_pb.d.ts +725 -0
  500. package/src/platform/policy/objects_pb.js +288 -0
  501. package/src/platform/policy/resourcemapping/resource_mapping_connect.d.ts +259 -0
  502. package/src/platform/policy/resourcemapping/resource_mapping_connect.js +259 -0
  503. package/src/platform/policy/resourcemapping/resource_mapping_pb.d.ts +314 -0
  504. package/src/platform/policy/resourcemapping/resource_mapping_pb.js +142 -0
  505. package/src/platform/policy/selectors_pb.d.ts +269 -0
  506. package/src/platform/policy/selectors_pb.js +110 -0
  507. package/src/platform/policy/subjectmapping/subject_mapping_connect.d.ts +118 -0
  508. package/src/platform/policy/subjectmapping/subject_mapping_connect.js +118 -0
  509. package/src/platform/policy/subjectmapping/subject_mapping_pb.d.ts +672 -0
  510. package/src/platform/policy/subjectmapping/subject_mapping_pb.js +260 -0
  511. package/src/platform/wellknownconfiguration/wellknown_configuration_connect.d.ts +26 -0
  512. package/src/platform/wellknownconfiguration/wellknown_configuration_connect.js +26 -0
  513. package/src/platform/wellknownconfiguration/wellknown_configuration_pb.d.ts +75 -0
  514. package/src/platform/wellknownconfiguration/wellknown_configuration_pb.js +35 -0
  515. package/src/policy/api.ts +61 -0
  516. package/src/policy/attributes.ts +117 -0
  517. package/src/policy/granter.ts +181 -0
  518. package/src/tdf/AttributeObject.ts +27 -0
  519. package/src/tdf/AttributeObjectJwt.ts +3 -0
  520. package/src/tdf/Crypto.ts +42 -0
  521. package/src/tdf/EntityObject.ts +18 -0
  522. package/src/tdf/NanoTDF/NanoTDF.ts +120 -0
  523. package/src/tdf/Policy.ts +51 -0
  524. package/src/tdf/PolicyObject.ts +12 -0
  525. package/src/tdf/TypedArray.ts +12 -0
  526. package/src/tdf/index.ts +6 -0
  527. package/src/types/index.ts +55 -0
  528. package/src/utils.ts +149 -0
  529. package/src/version.ts +9 -0
  530. package/tdf3/index.ts +91 -0
  531. package/tdf3/package-lock.json +6 -0
  532. package/tdf3/package.json +3 -0
  533. package/tdf3/src/assertions.ts +191 -0
  534. package/tdf3/src/binary.ts +195 -0
  535. package/tdf3/src/ciphers/aes-gcm-cipher.ts +76 -0
  536. package/tdf3/src/ciphers/algorithms.ts +9 -0
  537. package/tdf3/src/ciphers/index.ts +2 -0
  538. package/tdf3/src/ciphers/symmetric-cipher-base.ts +38 -0
  539. package/tdf3/src/client/DecoratedReadableStream.ts +148 -0
  540. package/tdf3/src/client/builders.ts +701 -0
  541. package/tdf3/src/client/index.ts +637 -0
  542. package/tdf3/src/client/validation.ts +79 -0
  543. package/tdf3/src/crypto/crypto-utils.ts +119 -0
  544. package/tdf3/src/crypto/declarations.ts +89 -0
  545. package/tdf3/src/crypto/index.ts +394 -0
  546. package/tdf3/src/index.ts +4 -0
  547. package/tdf3/src/models/attribute-set.ts +142 -0
  548. package/tdf3/src/models/encryption-information.ts +172 -0
  549. package/tdf3/src/models/index.ts +8 -0
  550. package/tdf3/src/models/key-access.ts +128 -0
  551. package/tdf3/src/models/manifest.ts +9 -0
  552. package/tdf3/src/models/payload.ts +6 -0
  553. package/tdf3/src/models/policy.ts +35 -0
  554. package/tdf3/src/models/upsert-response.ts +17 -0
  555. package/tdf3/src/tdf.ts +1351 -0
  556. package/tdf3/src/templates/default.html.ts +105 -0
  557. package/tdf3/src/templates/escaper.ts +10 -0
  558. package/tdf3/src/templates/index.ts +2 -0
  559. package/tdf3/src/utils/buffer-crc32.ts +46 -0
  560. package/tdf3/src/utils/chunkers.ts +118 -0
  561. package/tdf3/src/utils/index.ts +309 -0
  562. package/tdf3/src/utils/keysplit.ts +63 -0
  563. package/tdf3/src/utils/zip-reader.ts +341 -0
  564. package/tdf3/src/utils/zip-writer.ts +375 -0
  565. package/tdf3/src/version.ts +2 -0
  566. package/tdf3/types.d.ts +14 -0
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * The Signature ECC Mode is used to determine the length of the signature at the end of a nanotdf. This, in
5
+ * combination with the previous HAS_SIGNATURE section, describe the signature of the nanotdf. The following table
6
+ * describes the valid values and the associated ECC Params.
7
+ */
8
+ var CurveNameEnum;
9
+ (function (CurveNameEnum) {
10
+ CurveNameEnum[CurveNameEnum["SECP256R1"] = 0] = "SECP256R1";
11
+ CurveNameEnum[CurveNameEnum["SECP384R1"] = 1] = "SECP384R1";
12
+ CurveNameEnum[CurveNameEnum["SECP521R1"] = 2] = "SECP521R1";
13
+ })(CurveNameEnum || (CurveNameEnum = {}));
14
+ exports.default = CurveNameEnum;
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3VydmVOYW1lRW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9uYW5vdGRmL2VudW0vQ3VydmVOYW1lRW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7O0dBSUc7QUFDSCxJQUFLLGFBSUo7QUFKRCxXQUFLLGFBQWE7SUFDaEIsMkRBQVMsQ0FBQTtJQUNULDJEQUFTLENBQUE7SUFDVCwyREFBUyxDQUFBO0FBQ1gsQ0FBQyxFQUpJLGFBQWEsS0FBYixhQUFhLFFBSWpCO0FBRUQsa0JBQWUsYUFBYSxDQUFDIn0=
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var EncodingEnum;
4
+ (function (EncodingEnum) {
5
+ EncodingEnum["Base64"] = "base64";
6
+ })(EncodingEnum || (EncodingEnum = {}));
7
+ exports.default = EncodingEnum;
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW5jb2RpbmdFbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL25hbm90ZGYvZW51bS9FbmNvZGluZ0VudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFLLFlBRUo7QUFGRCxXQUFLLFlBQVk7SUFDZixpQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBRkksWUFBWSxLQUFaLFlBQVksUUFFaEI7QUFFRCxrQkFBZSxZQUFZLENBQUMifQ==
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var PolicyType;
4
+ (function (PolicyType) {
5
+ PolicyType[PolicyType["Remote"] = 0] = "Remote";
6
+ PolicyType[PolicyType["EmbeddedText"] = 1] = "EmbeddedText";
7
+ PolicyType[PolicyType["EmbeddedEncrypted"] = 2] = "EmbeddedEncrypted";
8
+ PolicyType[PolicyType["EmbeddedEncryptedPKA"] = 3] = "EmbeddedEncryptedPKA";
9
+ })(PolicyType || (PolicyType = {}));
10
+ exports.default = PolicyType;
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9saWN5VHlwZUVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbmFub3RkZi9lbnVtL1BvbGljeVR5cGVFbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsSUFBSyxVQUtKO0FBTEQsV0FBSyxVQUFVO0lBQ2IsK0NBQU0sQ0FBQTtJQUNOLDJEQUFZLENBQUE7SUFDWixxRUFBaUIsQ0FBQTtJQUNqQiwyRUFBb0IsQ0FBQTtBQUN0QixDQUFDLEVBTEksVUFBVSxLQUFWLFVBQVUsUUFLZDtBQUVELGtCQUFlLFVBQVUsQ0FBQyJ9
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var ProtocolEnum;
4
+ (function (ProtocolEnum) {
5
+ ProtocolEnum[ProtocolEnum["Http"] = 0] = "Http";
6
+ ProtocolEnum[ProtocolEnum["Https"] = 1] = "Https";
7
+ ProtocolEnum[ProtocolEnum["SharedResourceDirectory"] = 15] = "SharedResourceDirectory";
8
+ })(ProtocolEnum || (ProtocolEnum = {}));
9
+ exports.default = ProtocolEnum;
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvdG9jb2xFbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL25hbm90ZGYvZW51bS9Qcm90b2NvbEVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFLLFlBSUo7QUFKRCxXQUFLLFlBQVk7SUFDZiwrQ0FBUSxDQUFBO0lBQ1IsaURBQVMsQ0FBQTtJQUNULHNGQUE2QixDQUFBO0FBQy9CLENBQUMsRUFKSSxZQUFZLEtBQVosWUFBWSxRQUloQjtBQUVELGtCQUFlLFlBQVksQ0FBQyJ9
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var ResourceLocatorIdentifierEnum;
4
+ (function (ResourceLocatorIdentifierEnum) {
5
+ ResourceLocatorIdentifierEnum[ResourceLocatorIdentifierEnum["None"] = 0] = "None";
6
+ ResourceLocatorIdentifierEnum[ResourceLocatorIdentifierEnum["TwoBytes"] = 2] = "TwoBytes";
7
+ ResourceLocatorIdentifierEnum[ResourceLocatorIdentifierEnum["EightBytes"] = 8] = "EightBytes";
8
+ ResourceLocatorIdentifierEnum[ResourceLocatorIdentifierEnum["ThirtyTwoBytes"] = 32] = "ThirtyTwoBytes";
9
+ })(ResourceLocatorIdentifierEnum || (ResourceLocatorIdentifierEnum = {}));
10
+ exports.default = ResourceLocatorIdentifierEnum;
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzb3VyY2VMb2NhdG9ySWRlbnRpZmllckVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbmFub3RkZi9lbnVtL1Jlc291cmNlTG9jYXRvcklkZW50aWZpZXJFbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsSUFBSyw2QkFLSjtBQUxELFdBQUssNkJBQTZCO0lBQ2hDLGlGQUFRLENBQUE7SUFDUix5RkFBWSxDQUFBO0lBQ1osNkZBQWMsQ0FBQTtJQUNkLHNHQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMSSw2QkFBNkIsS0FBN0IsNkJBQTZCLFFBS2pDO0FBRUQsa0JBQWUsNkJBQTZCLENBQUMifQ==
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.lengthOfSignature = exports.lengthOfPublicKey = void 0;
4
+ const EcCurves_js_1 = require("../models/EcCurves.js");
5
+ /**
6
+ * Length of public key
7
+ *
8
+ * @param curveName CurveNameEnum
9
+ * @returns number length of the public key
10
+ */
11
+ function lengthOfPublicKey(curveName) {
12
+ return Math.ceil((0, EcCurves_js_1.getCurveLength)(curveName) / 8);
13
+ }
14
+ exports.lengthOfPublicKey = lengthOfPublicKey;
15
+ /**
16
+ * Length of signature
17
+ *
18
+ * ECDSA signatures are 2 times longer than the signer's private key for the curve used during the signing process.
19
+ * For example, for 256-bit elliptic curves (like secp256k1 ) the ECDSA signature is 512 bits (64 bytes) and for 521-bit
20
+ * curves (like secp521r1 ) the signature is 1042 bits.
21
+ *
22
+ * @param curveName CurveNameEnum
23
+ * @returns number length of the signature
24
+ */
25
+ function lengthOfSignature(curveName) {
26
+ return Math.ceil(((0, EcCurves_js_1.getCurveLength)(curveName) * 2) / 8);
27
+ }
28
+ exports.lengthOfSignature = lengthOfSignature;
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlQnlDdXJ2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9uYW5vdGRmL2hlbHBlcnMvY2FsY3VsYXRlQnlDdXJ2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx1REFBdUQ7QUFFdkQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixpQkFBaUIsQ0FBQyxTQUF3QjtJQUN4RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBQSw0QkFBYyxFQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFGRCw4Q0FFQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLFNBQXdCO0lBQ3hELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUEsNEJBQWMsRUFBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBRkQsOENBRUMifQ==
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const index_js_1 = require("../../nanotdf-crypto/index.js");
4
+ async function getHkdfSalt(buffer) {
5
+ return {
6
+ hkdfSalt: await (0, index_js_1.digest)(index_js_1.enums.HashType.Sha256, buffer),
7
+ hkdfHash: index_js_1.enums.HashType.Sha256,
8
+ };
9
+ }
10
+ exports.default = getHkdfSalt;
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0SGtkZlNhbHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbmFub3RkZi9oZWxwZXJzL2dldEhrZGZTYWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsNERBQThEO0FBTy9DLEtBQUssVUFBVSxXQUFXLENBQUMsTUFBZ0M7SUFDeEUsT0FBTztRQUNMLFFBQVEsRUFBRSxNQUFNLElBQUEsaUJBQU0sRUFBQyxnQkFBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO1FBQ3JELFFBQVEsRUFBRSxnQkFBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNO0tBQ2hDLENBQUM7QUFDSixDQUFDO0FBTEQsOEJBS0MifQ==
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DefaultParams = exports.getHkdfSalt = exports.encryptDataset = exports.encrypt = exports.decrypt = exports.NanoTDF = exports.Header = exports.Client = void 0;
7
+ // Don't export named values or the enduser will
8
+ // have to call `const NanoTDF = require('nanotdf').default`
9
+ var Client_js_1 = require("./Client.js");
10
+ Object.defineProperty(exports, "Client", { enumerable: true, get: function () { return __importDefault(Client_js_1).default; } });
11
+ var Header_js_1 = require("./models/Header.js");
12
+ Object.defineProperty(exports, "Header", { enumerable: true, get: function () { return __importDefault(Header_js_1).default; } });
13
+ var NanoTDF_js_1 = require("./NanoTDF.js");
14
+ Object.defineProperty(exports, "NanoTDF", { enumerable: true, get: function () { return __importDefault(NanoTDF_js_1).default; } });
15
+ var decrypt_js_1 = require("./decrypt.js");
16
+ Object.defineProperty(exports, "decrypt", { enumerable: true, get: function () { return __importDefault(decrypt_js_1).default; } });
17
+ var encrypt_js_1 = require("./encrypt.js");
18
+ Object.defineProperty(exports, "encrypt", { enumerable: true, get: function () { return __importDefault(encrypt_js_1).default; } });
19
+ var encrypt_dataset_js_1 = require("./encrypt-dataset.js");
20
+ Object.defineProperty(exports, "encryptDataset", { enumerable: true, get: function () { return __importDefault(encrypt_dataset_js_1).default; } });
21
+ var getHkdfSalt_js_1 = require("./helpers/getHkdfSalt.js");
22
+ Object.defineProperty(exports, "getHkdfSalt", { enumerable: true, get: function () { return __importDefault(getHkdfSalt_js_1).default; } });
23
+ var DefaultParams_js_1 = require("./models/DefaultParams.js");
24
+ Object.defineProperty(exports, "DefaultParams", { enumerable: true, get: function () { return __importDefault(DefaultParams_js_1).default; } });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmFub3RkZi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxnREFBZ0Q7QUFDaEQsNERBQTREO0FBQzVELHlDQUFnRDtBQUF2QyxvSEFBQSxPQUFPLE9BQVU7QUFDMUIsZ0RBQXVEO0FBQTlDLG9IQUFBLE9BQU8sT0FBVTtBQUMxQiwyQ0FBa0Q7QUFBekMsc0hBQUEsT0FBTyxPQUFXO0FBQzNCLDJDQUFrRDtBQUF6QyxzSEFBQSxPQUFPLE9BQVc7QUFDM0IsMkNBQWtEO0FBQXpDLHNIQUFBLE9BQU8sT0FBVztBQUMzQiwyREFBaUU7QUFBeEQscUlBQUEsT0FBTyxPQUFrQjtBQUNsQywyREFBa0U7QUFBekQsOEhBQUEsT0FBTyxPQUFlO0FBQy9CLDhEQUFxRTtBQUE1RCxrSUFBQSxPQUFPLE9BQWlCIn0=
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9saWN5SW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL25hbm90ZGYvaW50ZXJmYWNlcy9Qb2xpY3lJbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getBitLength = exports.Aes256Gcm128 = exports.Aes256Gcm120 = exports.Aes256Gcm112 = exports.Aes256Gcm104 = exports.Aes256Gcm96 = exports.Aes256Gcm64 = void 0;
7
+ const CipherEnum_js_1 = __importDefault(require("../enum/CipherEnum.js"));
8
+ const errors_js_1 = require("../../errors.js");
9
+ exports.Aes256Gcm64 = {
10
+ name: CipherEnum_js_1.default.AES_256_GCM_64,
11
+ length: 64,
12
+ };
13
+ exports.Aes256Gcm96 = {
14
+ name: CipherEnum_js_1.default.AES_256_GCM_96,
15
+ length: 96,
16
+ };
17
+ exports.Aes256Gcm104 = {
18
+ name: CipherEnum_js_1.default.AES_256_GCM_104,
19
+ length: 104,
20
+ };
21
+ exports.Aes256Gcm112 = {
22
+ name: CipherEnum_js_1.default.AES_256_GCM_112,
23
+ length: 112,
24
+ };
25
+ exports.Aes256Gcm120 = {
26
+ name: CipherEnum_js_1.default.AES_256_GCM_120,
27
+ length: 120,
28
+ };
29
+ exports.Aes256Gcm128 = {
30
+ name: CipherEnum_js_1.default.AES_256_GCM_128,
31
+ length: 128,
32
+ };
33
+ function getBitLength(cipher) {
34
+ switch (cipher) {
35
+ case CipherEnum_js_1.default.AES_256_GCM_64:
36
+ return exports.Aes256Gcm64.length;
37
+ case CipherEnum_js_1.default.AES_256_GCM_96:
38
+ return exports.Aes256Gcm96.length;
39
+ case CipherEnum_js_1.default.AES_256_GCM_104:
40
+ return exports.Aes256Gcm104.length;
41
+ case CipherEnum_js_1.default.AES_256_GCM_112:
42
+ return exports.Aes256Gcm112.length;
43
+ case CipherEnum_js_1.default.AES_256_GCM_120:
44
+ return exports.Aes256Gcm120.length;
45
+ case CipherEnum_js_1.default.AES_256_GCM_128:
46
+ return exports.Aes256Gcm128.length;
47
+ default:
48
+ throw new errors_js_1.UnsupportedFeatureError(`unsupported cipher enum value: [${cipher}]`);
49
+ }
50
+ }
51
+ exports.getBitLength = getBitLength;
52
+ // export default {
53
+ // Aes256Gcm64,
54
+ // Aes256Gcm96,
55
+ // Aes256Gcm104,
56
+ // Aes256Gcm112,
57
+ // Aes256Gcm120,
58
+ // Aes256Gcm128,
59
+ // getBitLength,
60
+ // };
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2lwaGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9uYW5vdGRmL21vZGVscy9DaXBoZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDBFQUErQztBQUMvQywrQ0FBMEQ7QUFPN0MsUUFBQSxXQUFXLEdBQW9CO0lBQzFDLElBQUksRUFBRSx1QkFBVSxDQUFDLGNBQWM7SUFDL0IsTUFBTSxFQUFFLEVBQUU7Q0FDWCxDQUFDO0FBRVcsUUFBQSxXQUFXLEdBQW9CO0lBQzFDLElBQUksRUFBRSx1QkFBVSxDQUFDLGNBQWM7SUFDL0IsTUFBTSxFQUFFLEVBQUU7Q0FDWCxDQUFDO0FBRVcsUUFBQSxZQUFZLEdBQW9CO0lBQzNDLElBQUksRUFBRSx1QkFBVSxDQUFDLGVBQWU7SUFDaEMsTUFBTSxFQUFFLEdBQUc7Q0FDWixDQUFDO0FBRVcsUUFBQSxZQUFZLEdBQW9CO0lBQzNDLElBQUksRUFBRSx1QkFBVSxDQUFDLGVBQWU7SUFDaEMsTUFBTSxFQUFFLEdBQUc7Q0FDWixDQUFDO0FBRVcsUUFBQSxZQUFZLEdBQW9CO0lBQzNDLElBQUksRUFBRSx1QkFBVSxDQUFDLGVBQWU7SUFDaEMsTUFBTSxFQUFFLEdBQUc7Q0FDWixDQUFDO0FBRVcsUUFBQSxZQUFZLEdBQW9CO0lBQzNDLElBQUksRUFBRSx1QkFBVSxDQUFDLGVBQWU7SUFDaEMsTUFBTSxFQUFFLEdBQUc7Q0FDWixDQUFDO0FBRUYsU0FBZ0IsWUFBWSxDQUFDLE1BQWtCO0lBQzdDLFFBQVEsTUFBTSxFQUFFO1FBQ2QsS0FBSyx1QkFBVSxDQUFDLGNBQWM7WUFDNUIsT0FBTyxtQkFBVyxDQUFDLE1BQU0sQ0FBQztRQUM1QixLQUFLLHVCQUFVLENBQUMsY0FBYztZQUM1QixPQUFPLG1CQUFXLENBQUMsTUFBTSxDQUFDO1FBQzVCLEtBQUssdUJBQVUsQ0FBQyxlQUFlO1lBQzdCLE9BQU8sb0JBQVksQ0FBQyxNQUFNLENBQUM7UUFDN0IsS0FBSyx1QkFBVSxDQUFDLGVBQWU7WUFDN0IsT0FBTyxvQkFBWSxDQUFDLE1BQU0sQ0FBQztRQUM3QixLQUFLLHVCQUFVLENBQUMsZUFBZTtZQUM3QixPQUFPLG9CQUFZLENBQUMsTUFBTSxDQUFDO1FBQzdCLEtBQUssdUJBQVUsQ0FBQyxlQUFlO1lBQzdCLE9BQU8sb0JBQVksQ0FBQyxNQUFNLENBQUM7UUFDN0I7WUFDRSxNQUFNLElBQUksbUNBQXVCLENBQUMsbUNBQW1DLE1BQU0sR0FBRyxDQUFDLENBQUM7S0FDbkY7QUFDSCxDQUFDO0FBakJELG9DQWlCQztBQUVELG1CQUFtQjtBQUNuQixpQkFBaUI7QUFDakIsaUJBQWlCO0FBQ2pCLGtCQUFrQjtBQUNsQixrQkFBa0I7QUFDbEIsa0JBQWtCO0FBQ2xCLGtCQUFrQjtBQUVsQixrQkFBa0I7QUFDbEIsS0FBSyJ9
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const CipherEnum_js_1 = __importDefault(require("../enum/CipherEnum.js"));
7
+ const CurveNameEnum_js_1 = __importDefault(require("../enum/CurveNameEnum.js"));
8
+ const PolicyTypeEnum_js_1 = __importDefault(require("../enum/PolicyTypeEnum.js"));
9
+ const enc = new TextEncoder();
10
+ /**
11
+ * Default encrypt param builders
12
+ *
13
+ * @link https://github.com/virtru/tdf3-cpp/blob/develop/tdf3-src/lib/src/nanotdf_builder_impl.h
14
+ */
15
+ const DefaultParams = {
16
+ ecdsaBinding: false,
17
+ ephemeralCurveName: CurveNameEnum_js_1.default.SECP256R1,
18
+ magicNumberVersion: enc.encode('L1L'),
19
+ offlineMode: false,
20
+ policyType: PolicyTypeEnum_js_1.default.EmbeddedEncrypted,
21
+ signature: false,
22
+ signatureCurveName: CurveNameEnum_js_1.default.SECP256R1,
23
+ symmetricCipher: CipherEnum_js_1.default.AES_256_GCM_96,
24
+ defaultECAlgorithm: 'ec:secp256r1',
25
+ };
26
+ exports.default = DefaultParams;
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdFBhcmFtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9uYW5vdGRmL21vZGVscy9EZWZhdWx0UGFyYW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMEVBQStDO0FBQy9DLGdGQUFxRDtBQUNyRCxrRkFBdUQ7QUFFdkQsTUFBTSxHQUFHLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztBQUU5Qjs7OztHQUlHO0FBQ0gsTUFBTSxhQUFhLEdBQUc7SUFDcEIsWUFBWSxFQUFFLEtBQUs7SUFDbkIsa0JBQWtCLEVBQUUsMEJBQWEsQ0FBQyxTQUFTO0lBQzNDLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ3JDLFdBQVcsRUFBRSxLQUFLO0lBQ2xCLFVBQVUsRUFBRSwyQkFBYyxDQUFDLGlCQUFpQjtJQUM1QyxTQUFTLEVBQUUsS0FBSztJQUNoQixrQkFBa0IsRUFBRSwwQkFBYSxDQUFDLFNBQVM7SUFDM0MsZUFBZSxFQUFFLHVCQUFVLENBQUMsY0FBYztJQUMxQyxrQkFBa0IsRUFBRSxjQUFjO0NBQ25DLENBQUM7QUFFRixrQkFBZSxhQUFhLENBQUMifQ==
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getCurveLength = exports.Secp521R1 = exports.Secp384R1 = exports.Secp256R1 = void 0;
7
+ const CurveNameEnum_js_1 = __importDefault(require("../enum/CurveNameEnum.js"));
8
+ const errors_js_1 = require("../../errors.js");
9
+ exports.Secp256R1 = {
10
+ name: CurveNameEnum_js_1.default.SECP256R1,
11
+ length: 256,
12
+ };
13
+ exports.Secp384R1 = {
14
+ name: CurveNameEnum_js_1.default.SECP384R1,
15
+ length: 384,
16
+ };
17
+ exports.Secp521R1 = {
18
+ name: CurveNameEnum_js_1.default.SECP521R1,
19
+ length: 521,
20
+ };
21
+ /**
22
+ * Get size from Curve
23
+ *
24
+ * @param curveName CurveNameEnum name of the curve
25
+ */
26
+ function getCurveLength(curveName) {
27
+ switch (curveName) {
28
+ case exports.Secp256R1.name:
29
+ return exports.Secp256R1.length;
30
+ case exports.Secp384R1.name:
31
+ return exports.Secp384R1.length;
32
+ case exports.Secp521R1.name:
33
+ return exports.Secp521R1.length;
34
+ default:
35
+ throw new errors_js_1.UnsupportedFeatureError(`unsupported curve name: ${curveName}`);
36
+ }
37
+ }
38
+ exports.getCurveLength = getCurveLength;
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWNDdXJ2ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbmFub3RkZi9tb2RlbHMvRWNDdXJ2ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsZ0ZBQXFEO0FBQ3JELCtDQUEwRDtBQU83QyxRQUFBLFNBQVMsR0FBbUI7SUFDdkMsSUFBSSxFQUFFLDBCQUFhLENBQUMsU0FBUztJQUM3QixNQUFNLEVBQUUsR0FBRztDQUNaLENBQUM7QUFFVyxRQUFBLFNBQVMsR0FBbUI7SUFDdkMsSUFBSSxFQUFFLDBCQUFhLENBQUMsU0FBUztJQUM3QixNQUFNLEVBQUUsR0FBRztDQUNaLENBQUM7QUFFVyxRQUFBLFNBQVMsR0FBbUI7SUFDdkMsSUFBSSxFQUFFLDBCQUFhLENBQUMsU0FBUztJQUM3QixNQUFNLEVBQUUsR0FBRztDQUNaLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLFNBQXdCO0lBQ3JELFFBQVEsU0FBUyxFQUFFO1FBQ2pCLEtBQUssaUJBQVMsQ0FBQyxJQUFJO1lBQ2pCLE9BQU8saUJBQVMsQ0FBQyxNQUFNLENBQUM7UUFDMUIsS0FBSyxpQkFBUyxDQUFDLElBQUk7WUFDakIsT0FBTyxpQkFBUyxDQUFDLE1BQU0sQ0FBQztRQUMxQixLQUFLLGlCQUFTLENBQUMsSUFBSTtZQUNqQixPQUFPLGlCQUFTLENBQUMsTUFBTSxDQUFDO1FBQzFCO1lBQ0UsTUFBTSxJQUFJLG1DQUF1QixDQUFDLDJCQUEyQixTQUFTLEVBQUUsQ0FBQyxDQUFDO0tBQzdFO0FBQ0gsQ0FBQztBQVhELHdDQVdDIn0=
@@ -0,0 +1,255 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ // Models
7
+ const Ciphers_js_1 = require("./Ciphers.js");
8
+ const ResourceLocator_js_1 = __importDefault(require("./ResourceLocator.js"));
9
+ const PolicyFactory_js_1 = __importDefault(require("./Policy/PolicyFactory.js"));
10
+ // Helpers
11
+ const calculateByCurve_js_1 = require("../helpers/calculateByCurve.js");
12
+ const DefaultParams_js_1 = __importDefault(require("./DefaultParams.js"));
13
+ const errors_js_1 = require("../../errors.js");
14
+ const utils_js_1 = require("../../utils.js");
15
+ /**
16
+ * NanoTDF Header
17
+ *
18
+ * The header section is intended to be sent to a KAS and is used by the KAS to derive the decryption key that can
19
+ * decrypts the nanotdf's payload. The Header is structured as follows:
20
+ *
21
+ * | Section | Minimum Length (B) | Maximum Length (B) |
22
+ * |------------------------|--------------------|--------------------|
23
+ * | Magic Number + Version | 3 | 3 |
24
+ * | KAS (resource locator) | 3 | 257 |
25
+ * | ECC Mode | 1 | 1 |
26
+ * | Payload + Sig Mode | 1 | 1 |
27
+ * | Policy | 3 | 257 |
28
+ * | Ephemeral Key | 33 | 67 |
29
+ *
30
+ */
31
+ class Header {
32
+ static parse(buff) {
33
+ let offset = 0;
34
+ /**
35
+ * Magic number and version
36
+ *
37
+ * @link https://github.com/virtru/nanotdf/blob/master/spec/index.md#3311-magic-number--version
38
+ */
39
+ // Convert to ascii
40
+ const magicNumberVersion = buff.subarray(Header.MAGIC_NUMBER_VERSION_BYTE_OFF, Header.MAGIC_NUMBER_VERSION_BYTE_LEN);
41
+ offset += Header.MAGIC_NUMBER_VERSION_BYTE_LEN;
42
+ /**
43
+ * KAS Resource Locator
44
+ *
45
+ * KAS is a typeof Resource Locator
46
+ *
47
+ * @link https://github.com/virtru/nanotdf/blob/master/spec/index.md#3312-kas
48
+ * @link https://github.com/virtru/nanotdf/blob/master/spec/index.md#341-resource-locator
49
+ */
50
+ const kas = ResourceLocator_js_1.default.parse(buff.subarray(offset));
51
+ offset += kas.length;
52
+ /**
53
+ * ECC & Binding Mode
54
+ *
55
+ * This section contains a 1-byte bitfield describing the ECC Params and Policy binding strategy to use.
56
+ * The Policy Binding strategy is either using a 64-bit GMAC (using AES-256-GCM) tag or an ECDSA signature.
57
+ * The signature size depends on the size of ECC Params used. The nanotdf at this time only supports methods that
58
+ * involve Elliptic Curve Cryptography. The fields are structured as follows:
59
+ *
60
+ * | Section | Bit Length | Bit start index |
61
+ * |---------------------------|------------|-----------------|
62
+ * | USE_ECDSA_BINDING | 1 | 7 |
63
+ * | UNUSED | 4 | 3 |
64
+ * | Ephemeral ECC Params Enum | 3 | 0 |
65
+ *
66
+ * @link https://github.com/virtru/nanotdf/blob/master/spec/index.md#3313-ecc-and-binding-mode
67
+ */
68
+ const eccBindingModeDV = buff.subarray(offset, offset + Header.ECC_BINDING_MODE_BYTE_LEN);
69
+ const useECDSABinding = eccBindingModeDV[0] >> 7 === 1; // Last bit
70
+ const ephemeralCurveName = eccBindingModeDV[0] & 0x7; // First 3 bits
71
+ offset += Header.ECC_BINDING_MODE_BYTE_LEN;
72
+ /**
73
+ * Symmetric & payload config
74
+ *
75
+ * This section contains a 1 byte data structure composed of bitfields that describe the symmetric ciphers for
76
+ * encrypted payloads. This cipher applies to both the Payload and the Policy of the nanotdf. The fields are as
77
+ * follows:
78
+ *
79
+ * | Section | Bit Length | Bit start index |
80
+ * |-----------------------|------------|-----------------|
81
+ * | HAS_SIGNATURE | 1 | 7 |
82
+ * | Signature ECC Mode | 3 | 4 |
83
+ * | Symmetric Cipher Enum | 4 | 0 |
84
+ *
85
+ * @link https://github.com/virtru/nanotdf/blob/master/spec/index.md#3314-symmetric-and-payload-config
86
+ */
87
+ const symmetricPayloadDV = buff.subarray(offset, offset + Header.ECC_BINDING_MODE_BYTE_LEN);
88
+ const hasSignature = symmetricPayloadDV[0] >> 7 === 1; // Last bit
89
+ const signatureCurveName = (symmetricPayloadDV[0] >> 4) & 0x7; // Middle 3 bits
90
+ const symmetricCipher = symmetricPayloadDV[0] & 0xf; // First 4 bits
91
+ offset += Header.SYMMETRIC_PAYLOAD_CONFIG_BYTE_LEN;
92
+ /**
93
+ * Policy
94
+ *
95
+ * This section contains a Policy object. The data contained in the Policy allows for definition flexible
96
+ * definitions of a policy including a policy by reference, or an embedded policy. Refer to the Policy object's
97
+ * definition in Section 3.4.2
98
+ *
99
+ * The structure of the Policy is as follows:
100
+ *
101
+ * | Section | Minimum Length (B) | Maximum Length (B) |
102
+ * |-----------|--------------------|--------------------|
103
+ * | Type Enum | 1 | 1 |
104
+ * | Body | 3 | 257 |
105
+ * | Binding | 8 | 132 |
106
+ *
107
+ * @link https://github.com/virtru/nanotdf/blob/master/spec/index.md#3315-policy
108
+ * @link https://github.com/virtru/nanotdf/blob/master/spec/index.md#342-policy
109
+ */
110
+ const { policy, offset: nextOffset } = PolicyFactory_js_1.default.parse(buff.subarray(offset), useECDSABinding, ephemeralCurveName);
111
+ offset += nextOffset;
112
+ /**
113
+ * Ephemeral public key
114
+ *
115
+ * This section contains a Key object. The size of the key is determined by the Encryption Method Section.
116
+ *
117
+ * @link https://github.com/virtru/nanotdf/blob/master/spec/index.md#3316-key
118
+ */
119
+ // TODO: Resolve where offset isn't adding 1 byte
120
+ const ephemeralPublicKeyLength = (0, calculateByCurve_js_1.lengthOfPublicKey)(ephemeralCurveName) + 1;
121
+ const ephemeralPublicKey = buff.subarray(offset, offset + ephemeralPublicKeyLength);
122
+ offset += ephemeralPublicKeyLength;
123
+ // Check if the ephemeral public key length is not the same length
124
+ if (ephemeralPublicKey.byteLength !== ephemeralPublicKeyLength) {
125
+ throw new errors_js_1.InvalidFileError('nanotdf parse failure: public key read failure');
126
+ }
127
+ const header = new Header(magicNumberVersion, kas, useECDSABinding, ephemeralCurveName, hasSignature, signatureCurveName, symmetricCipher, policy, ephemeralPublicKey);
128
+ return {
129
+ header,
130
+ offset,
131
+ };
132
+ }
133
+ //Ephemeral Public Key
134
+ // protected _ephemeralPublicKey: string | null = null;
135
+ constructor(magicNumberVersion, kas, useECDSABinding, ephemeralCurveName, hasSignature, signatureCurveName, symmetricCipher, policy, ephemeralPublicKey) {
136
+ // Magic Number & Version
137
+ this.magicNumberVersion = DefaultParams_js_1.default.magicNumberVersion;
138
+ // ECC & Binding Mode
139
+ this.useECDSABinding = DefaultParams_js_1.default.ecdsaBinding;
140
+ this.ephemeralCurveName = DefaultParams_js_1.default.ephemeralCurveName;
141
+ // Symmetric & Payload Config
142
+ this.hasSignature = DefaultParams_js_1.default.signature;
143
+ this.signatureCurveName = DefaultParams_js_1.default.signatureCurveName;
144
+ this.symmetricCipher = DefaultParams_js_1.default.symmetricCipher;
145
+ this.magicNumberVersion = magicNumberVersion;
146
+ this.kas = kas;
147
+ this.useECDSABinding = useECDSABinding;
148
+ this.ephemeralCurveName = ephemeralCurveName;
149
+ this.hasSignature = hasSignature;
150
+ this.signatureCurveName = signatureCurveName;
151
+ this.symmetricCipher = symmetricCipher;
152
+ this.policy = policy;
153
+ this.ephemeralPublicKey = ephemeralPublicKey;
154
+ // Auth tag length in bits (i.e. AES GCM 64 bit)
155
+ this.authTagLength = (0, Ciphers_js_1.getBitLength)(this.symmetricCipher);
156
+ }
157
+ /**
158
+ * Copy the contents of the header to buffer
159
+ */
160
+ copyToBuffer(target) {
161
+ if (this.length > target.length) {
162
+ throw new errors_js_1.InvalidFileError('invalid buffer size to copy tdf header');
163
+ }
164
+ let offset = 0;
165
+ // Write Magic number and version
166
+ target.set(this.magicNumberVersion, 0);
167
+ offset += this.magicNumberVersion.length;
168
+ // Write kas resource locator
169
+ const kasResourceLocatorBuf = this.kas.toBuffer();
170
+ target.set(kasResourceLocatorBuf, offset);
171
+ offset += kasResourceLocatorBuf.length;
172
+ // Write ECC & Binding Mode
173
+ const ecdsaBinding = this.useECDSABinding ? 1 : 0;
174
+ const eccBingingMode = (ecdsaBinding << 7) | this.ephemeralCurveName;
175
+ const eccBingingModeAsByte = new Uint8Array(1);
176
+ eccBingingModeAsByte[0] = eccBingingMode;
177
+ target.set(eccBingingModeAsByte, offset);
178
+ offset += eccBingingModeAsByte.length;
179
+ // Write symmetric & payload config
180
+ const isSignatureEnable = this.hasSignature ? 1 : 0;
181
+ const symmetricPayloadConfig = (isSignatureEnable << 7) | this.signatureCurveName | this.symmetricCipher;
182
+ const symmetricPayloadConfigAsByte = new Uint8Array(1);
183
+ symmetricPayloadConfigAsByte[0] = symmetricPayloadConfig;
184
+ target.set(symmetricPayloadConfigAsByte, offset);
185
+ offset += symmetricPayloadConfigAsByte.length;
186
+ // Write the policy
187
+ const policyBuffer = this.policy.toBuffer();
188
+ target.set(policyBuffer, offset);
189
+ offset += policyBuffer.length;
190
+ // Write the ephemeral public key
191
+ target.set(this.ephemeralPublicKey, offset);
192
+ }
193
+ /**
194
+ * Length
195
+ *
196
+ * @returns { number } Length of header
197
+ */
198
+ get length() {
199
+ return (
200
+ // Length of the magic number and version
201
+ this.magicNumberVersion.length +
202
+ // Length of the KAS resource locator
203
+ this.kas.length +
204
+ // ECC & Binding Mode - 1 Bytes
205
+ 1 +
206
+ // symmetric & payload config - 1 Bytes
207
+ 1 +
208
+ // Length of the policy
209
+ this.policy.getLength() +
210
+ // Length of the ephemeral public key
211
+ this.ephemeralPublicKey.length);
212
+ }
213
+ /**
214
+ * Return nanoTDF header as buffer
215
+ *
216
+ * Warning: This method will allocate memory of length of the header, use
217
+ * copyToBuffer() when copy is not needed.
218
+ */
219
+ toBuffer() {
220
+ const arrayBuffer = new ArrayBuffer(this.length);
221
+ const target = new Uint8Array(arrayBuffer);
222
+ this.copyToBuffer(target);
223
+ return arrayBuffer;
224
+ }
225
+ /**
226
+ * Get KAS Rewrap URL
227
+ */
228
+ getKasRewrapUrl() {
229
+ try {
230
+ return `${(0, utils_js_1.rstrip)(this.kas.url, '/')}/v2/rewrap`;
231
+ }
232
+ catch (e) {
233
+ throw new errors_js_1.ConfigurationError(`cannot construct KAS Rewrap URL: ${e.message}`);
234
+ }
235
+ }
236
+ }
237
+ // Magic Number & Version
238
+ Header.MAGIC_NUMBER_VERSION_BYTE_OFF = 0;
239
+ Header.MAGIC_NUMBER_VERSION_BYTE_LEN = 3;
240
+ Header.MAGIC_NUMBER_OFFSET = 0;
241
+ Header.MAGIC_NUMBER_LENGTH = 18;
242
+ // ECC & Binding Mode
243
+ Header.ECC_BINDING_MODE_BYTE_LEN = 1;
244
+ Header.USE_ECDSA_BINDING_BIT_OFF = 0;
245
+ Header.EPHEMERAL_ECC_CURVE_NAME_BIT_OFF = -3;
246
+ // Symmetric & Payload Config
247
+ Header.SYMMETRIC_PAYLOAD_CONFIG_BYTE_LEN = 1;
248
+ Header.HAS_SIGNATURE_BIT_OFF = 1;
249
+ Header.HAS_SIGNATURE_BIT_LEN = 1;
250
+ Header.SIGNATURE_ECC_CURVE_NAME_BIT_OFF = 1;
251
+ Header.SIGNATURE_ECC_CURVE_NAME_BIT_LEN = 3;
252
+ Header.SYMMETRIC_CIPHER_BIT_OFF = 4;
253
+ Header.SYMMETRIC_CIPHER_BIT_LEN = 4;
254
+ exports.default = Header;
255
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL25hbm90ZGYvbW9kZWxzL0hlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLFNBQVM7QUFDVCw2Q0FBNEM7QUFDNUMsOEVBQW1EO0FBQ25ELGlGQUFzRDtBQU10RCxVQUFVO0FBQ1Ysd0VBQW1FO0FBQ25FLDBFQUErQztBQUMvQywrQ0FBdUU7QUFDdkUsNkNBQXdDO0FBRXhDOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQXFCLE1BQU07SUE0Q3pCLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBZ0I7UUFDM0IsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRWY7Ozs7V0FJRztRQUNILG1CQUFtQjtRQUNuQixNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQ3RDLE1BQU0sQ0FBQyw2QkFBNkIsRUFDcEMsTUFBTSxDQUFDLDZCQUE2QixDQUNyQyxDQUFDO1FBQ0YsTUFBTSxJQUFJLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQztRQUUvQzs7Ozs7OztXQU9HO1FBQ0gsTUFBTSxHQUFHLEdBQUcsNEJBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDO1FBRXJCOzs7Ozs7Ozs7Ozs7Ozs7V0FlRztRQUNILE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQzFGLE1BQU0sZUFBZSxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXO1FBQ25FLE1BQU0sa0JBQWtCLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsZUFB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