@kensio/yulin 0.37.0 → 0.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (488) hide show
  1. package/dist/sdk/router/resolve-sim-sdk-command-router.d.ts.map +1 -1
  2. package/dist/sdk/router/resolve-sim-sdk-command-router.js +3 -0
  3. package/dist/sdk/router/resolve-sim-sdk-command-router.js.map +1 -1
  4. package/dist/serve/controller/sim-service-controller.d.ts +13 -0
  5. package/dist/serve/controller/sim-service-controller.d.ts.map +1 -1
  6. package/dist/serve/controller/sim-service-controller.js.map +1 -1
  7. package/dist/serve/http/url/sim-aws-local-url.d.ts.map +1 -1
  8. package/dist/serve/http/url/sim-aws-local-url.js +5 -1
  9. package/dist/serve/http/url/sim-aws-local-url.js.map +1 -1
  10. package/dist/service/aws/factory/sim-aws-service-factory.d.ts +8 -0
  11. package/dist/service/aws/factory/sim-aws-service-factory.d.ts.map +1 -1
  12. package/dist/service/aws/factory/sim-aws-service-factory.js +14 -0
  13. package/dist/service/aws/factory/sim-aws-service-factory.js.map +1 -1
  14. package/dist/service/aws/sim-aws-account-region-scope.d.ts +5 -0
  15. package/dist/service/aws/sim-aws-account-region-scope.d.ts.map +1 -1
  16. package/dist/service/aws/sim-aws-account-region-scope.js +6 -0
  17. package/dist/service/aws/sim-aws-account-region-scope.js.map +1 -1
  18. package/dist/service/aws/sim-aws-account.d.ts +5 -0
  19. package/dist/service/aws/sim-aws-account.d.ts.map +1 -1
  20. package/dist/service/aws/sim-aws-account.js +6 -0
  21. package/dist/service/aws/sim-aws-account.js.map +1 -1
  22. package/dist/service/aws/sim-aws-region.d.ts +5 -0
  23. package/dist/service/aws/sim-aws-region.d.ts.map +1 -1
  24. package/dist/service/aws/sim-aws-region.js +6 -0
  25. package/dist/service/aws/sim-aws-region.js.map +1 -1
  26. package/dist/service/aws/sim-aws-request-authentication.d.ts +35 -0
  27. package/dist/service/aws/sim-aws-request-authentication.d.ts.map +1 -0
  28. package/dist/service/aws/sim-aws-request-authentication.js +32 -0
  29. package/dist/service/aws/sim-aws-request-authentication.js.map +1 -0
  30. package/dist/service/aws/sim-aws.d.ts +7 -21
  31. package/dist/service/aws/sim-aws.d.ts.map +1 -1
  32. package/dist/service/aws/sim-aws.js +15 -26
  33. package/dist/service/aws/sim-aws.js.map +1 -1
  34. package/dist/service/cloudformation/resource/dependency/sim-cfn-resource-dependencies.d.ts.map +1 -1
  35. package/dist/service/cloudformation/resource/dependency/sim-cfn-resource-dependencies.js +1 -1
  36. package/dist/service/cloudformation/resource/dependency/sim-cfn-resource-dependencies.js.map +1 -1
  37. package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.js +1 -1
  38. package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.js.map +1 -1
  39. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.d.ts.map +1 -1
  40. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.js +2 -1
  41. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.js.map +1 -1
  42. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.d.ts +56 -0
  43. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.d.ts.map +1 -1
  44. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.js +66 -0
  45. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.js.map +1 -1
  46. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.d.ts +7 -1
  47. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.d.ts.map +1 -1
  48. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.js +11 -1
  49. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.js.map +1 -1
  50. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.d.ts +17 -0
  51. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.d.ts.map +1 -0
  52. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.js +24 -0
  53. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.js.map +1 -0
  54. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts +10 -0
  55. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts.map +1 -1
  56. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js +3 -1
  57. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js.map +1 -1
  58. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.d.ts +6 -1
  59. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.d.ts.map +1 -1
  60. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.js +25 -16
  61. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.js.map +1 -1
  62. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.d.ts +2 -1
  63. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.d.ts.map +1 -1
  64. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.js +2 -1
  65. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.js.map +1 -1
  66. package/dist/service/iam/authorize/match/sim-iam-principal-match.d.ts +39 -0
  67. package/dist/service/iam/authorize/match/sim-iam-principal-match.d.ts.map +1 -0
  68. package/dist/service/iam/authorize/match/sim-iam-principal-match.js +55 -0
  69. package/dist/service/iam/authorize/match/sim-iam-principal-match.js.map +1 -0
  70. package/dist/service/iam/authorize/sim-iam-decision.d.ts.map +1 -1
  71. package/dist/service/iam/authorize/sim-iam-decision.js +3 -2
  72. package/dist/service/iam/authorize/sim-iam-decision.js.map +1 -1
  73. package/dist/service/iam/index.d.ts +1 -0
  74. package/dist/service/iam/index.d.ts.map +1 -1
  75. package/dist/service/iam/index.js +1 -0
  76. package/dist/service/iam/index.js.map +1 -1
  77. package/dist/service/iam/request/sim-aws-request-caller-resolver.d.ts +21 -5
  78. package/dist/service/iam/request/sim-aws-request-caller-resolver.d.ts.map +1 -1
  79. package/dist/service/iam/request/sim-aws-request-caller-resolver.js +15 -9
  80. package/dist/service/iam/request/sim-aws-request-caller-resolver.js.map +1 -1
  81. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-request.d.ts +3 -1
  82. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-request.d.ts.map +1 -1
  83. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-request.js +6 -4
  84. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-request.js.map +1 -1
  85. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-payload-hash.d.ts +34 -14
  86. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-payload-hash.d.ts.map +1 -1
  87. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-payload-hash.js +56 -29
  88. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-payload-hash.js.map +1 -1
  89. package/dist/service/iam/sigv4/error/sim-iam-sigv4.error.d.ts +13 -1
  90. package/dist/service/iam/sigv4/error/sim-iam-sigv4.error.d.ts.map +1 -1
  91. package/dist/service/iam/sigv4/error/sim-iam-sigv4.error.js +14 -0
  92. package/dist/service/iam/sigv4/error/sim-iam-sigv4.error.js.map +1 -1
  93. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-credential.d.ts +25 -0
  94. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-credential.d.ts.map +1 -0
  95. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-credential.js +41 -0
  96. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-credential.js.map +1 -0
  97. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-parameters.d.ts +27 -0
  98. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-parameters.d.ts.map +1 -0
  99. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-parameters.js +41 -0
  100. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-parameters.js.map +1 -0
  101. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-query.d.ts +39 -0
  102. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-query.d.ts.map +1 -0
  103. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-query.js +59 -0
  104. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-query.js.map +1 -0
  105. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-window.d.ts +30 -0
  106. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-window.d.ts.map +1 -0
  107. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-window.js +64 -0
  108. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-window.js.map +1 -0
  109. package/dist/service/iam/sigv4/sim-iam-sigv4-authorization.d.ts +2 -1
  110. package/dist/service/iam/sigv4/sim-iam-sigv4-authorization.d.ts.map +1 -1
  111. package/dist/service/iam/sigv4/sim-iam-sigv4-authorization.js.map +1 -1
  112. package/dist/service/iam/sigv4/sim-iam-sigv4-request-date.d.ts +22 -1
  113. package/dist/service/iam/sigv4/sim-iam-sigv4-request-date.d.ts.map +1 -1
  114. package/dist/service/iam/sigv4/sim-iam-sigv4-request-date.js +49 -7
  115. package/dist/service/iam/sigv4/sim-iam-sigv4-request-date.js.map +1 -1
  116. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-check.d.ts +9 -2
  117. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-check.d.ts.map +1 -1
  118. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-check.js +5 -5
  119. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-check.js.map +1 -1
  120. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-statement.d.ts +16 -0
  121. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-statement.d.ts.map +1 -0
  122. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-statement.js +2 -0
  123. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-statement.js.map +1 -0
  124. package/dist/service/iam/sigv4/sim-iam-sigv4-signing-credentials.d.ts +12 -3
  125. package/dist/service/iam/sigv4/sim-iam-sigv4-signing-credentials.d.ts.map +1 -1
  126. package/dist/service/iam/sigv4/sim-iam-sigv4-signing-credentials.js +9 -5
  127. package/dist/service/iam/sigv4/sim-iam-sigv4-signing-credentials.js.map +1 -1
  128. package/dist/service/iam/sigv4/sim-iam-sigv4-verifier.d.ts +20 -4
  129. package/dist/service/iam/sigv4/sim-iam-sigv4-verifier.d.ts.map +1 -1
  130. package/dist/service/iam/sigv4/sim-iam-sigv4-verifier.js +52 -6
  131. package/dist/service/iam/sigv4/sim-iam-sigv4-verifier.js.map +1 -1
  132. package/dist/service/kms/command/alias/alias.command.d.ts +43 -0
  133. package/dist/service/kms/command/alias/alias.command.d.ts.map +1 -0
  134. package/dist/service/kms/command/alias/alias.command.js +2 -0
  135. package/dist/service/kms/command/alias/alias.command.js.map +1 -0
  136. package/dist/service/kms/command/alias/sim-kms-alias-commands.d.ts +34 -0
  137. package/dist/service/kms/command/alias/sim-kms-alias-commands.d.ts.map +1 -0
  138. package/dist/service/kms/command/alias/sim-kms-alias-commands.js +56 -0
  139. package/dist/service/kms/command/alias/sim-kms-alias-commands.js.map +1 -0
  140. package/dist/service/kms/command/authorize/sim-kms-authorizer.d.ts +38 -0
  141. package/dist/service/kms/command/authorize/sim-kms-authorizer.d.ts.map +1 -0
  142. package/dist/service/kms/command/authorize/sim-kms-authorizer.js +58 -0
  143. package/dist/service/kms/command/authorize/sim-kms-authorizer.js.map +1 -0
  144. package/dist/service/kms/command/crypto/crypto.command.d.ts +68 -0
  145. package/dist/service/kms/command/crypto/crypto.command.d.ts.map +1 -0
  146. package/dist/service/kms/command/crypto/crypto.command.js +2 -0
  147. package/dist/service/kms/command/crypto/crypto.command.js.map +1 -0
  148. package/dist/service/kms/command/crypto/sim-kms-ciphertext-key.d.ts +40 -0
  149. package/dist/service/kms/command/crypto/sim-kms-ciphertext-key.d.ts.map +1 -0
  150. package/dist/service/kms/command/crypto/sim-kms-ciphertext-key.js +58 -0
  151. package/dist/service/kms/command/crypto/sim-kms-ciphertext-key.js.map +1 -0
  152. package/dist/service/kms/command/crypto/sim-kms-crypto-commands.d.ts +38 -0
  153. package/dist/service/kms/command/crypto/sim-kms-crypto-commands.d.ts.map +1 -0
  154. package/dist/service/kms/command/crypto/sim-kms-crypto-commands.js +74 -0
  155. package/dist/service/kms/command/crypto/sim-kms-crypto-commands.js.map +1 -0
  156. package/dist/service/kms/command/crypto/sim-kms-data-key-spec.d.ts +16 -0
  157. package/dist/service/kms/command/crypto/sim-kms-data-key-spec.d.ts.map +1 -0
  158. package/dist/service/kms/command/crypto/sim-kms-data-key-spec.js +50 -0
  159. package/dist/service/kms/command/crypto/sim-kms-data-key-spec.js.map +1 -0
  160. package/dist/service/kms/command/crypto/sim-kms-generate-data-key.d.ts +31 -0
  161. package/dist/service/kms/command/crypto/sim-kms-generate-data-key.d.ts.map +1 -0
  162. package/dist/service/kms/command/crypto/sim-kms-generate-data-key.js +35 -0
  163. package/dist/service/kms/command/crypto/sim-kms-generate-data-key.js.map +1 -0
  164. package/dist/service/kms/command/key/key.command.d.ts +159 -0
  165. package/dist/service/kms/command/key/key.command.d.ts.map +1 -0
  166. package/dist/service/kms/command/key/key.command.js +2 -0
  167. package/dist/service/kms/command/key/key.command.js.map +1 -0
  168. package/dist/service/kms/command/key/sim-kms-key-commands.d.ts +41 -0
  169. package/dist/service/kms/command/key/sim-kms-key-commands.d.ts.map +1 -0
  170. package/dist/service/kms/command/key/sim-kms-key-commands.js +45 -0
  171. package/dist/service/kms/command/key/sim-kms-key-commands.js.map +1 -0
  172. package/dist/service/kms/command/key/sim-kms-key-lifecycle-commands.d.ts +48 -0
  173. package/dist/service/kms/command/key/sim-kms-key-lifecycle-commands.d.ts.map +1 -0
  174. package/dist/service/kms/command/key/sim-kms-key-lifecycle-commands.js +67 -0
  175. package/dist/service/kms/command/key/sim-kms-key-lifecycle-commands.js.map +1 -0
  176. package/dist/service/kms/command/key/sim-kms-key-policy-commands.d.ts +39 -0
  177. package/dist/service/kms/command/key/sim-kms-key-policy-commands.d.ts.map +1 -0
  178. package/dist/service/kms/command/key/sim-kms-key-policy-commands.js +57 -0
  179. package/dist/service/kms/command/key/sim-kms-key-policy-commands.js.map +1 -0
  180. package/dist/service/kms/command/key/sim-kms-key-type.d.ts +14 -0
  181. package/dist/service/kms/command/key/sim-kms-key-type.d.ts.map +1 -0
  182. package/dist/service/kms/command/key/sim-kms-key-type.js +31 -0
  183. package/dist/service/kms/command/key/sim-kms-key-type.js.map +1 -0
  184. package/dist/service/kms/command/key/sim-kms-list-keys.d.ts +29 -0
  185. package/dist/service/kms/command/key/sim-kms-list-keys.d.ts.map +1 -0
  186. package/dist/service/kms/command/key/sim-kms-list-keys.js +31 -0
  187. package/dist/service/kms/command/key/sim-kms-list-keys.js.map +1 -0
  188. package/dist/service/kms/command/key/sim-kms-pending-window.d.ts +17 -0
  189. package/dist/service/kms/command/key/sim-kms-pending-window.d.ts.map +1 -0
  190. package/dist/service/kms/command/key/sim-kms-pending-window.js +37 -0
  191. package/dist/service/kms/command/key/sim-kms-pending-window.js.map +1 -0
  192. package/dist/service/kms/command/sim-kms-command.types.d.ts +10 -0
  193. package/dist/service/kms/command/sim-kms-command.types.d.ts.map +1 -0
  194. package/dist/service/kms/command/sim-kms-command.types.js +2 -0
  195. package/dist/service/kms/command/sim-kms-command.types.js.map +1 -0
  196. package/dist/service/kms/error/sim-kms.error.d.ts +88 -0
  197. package/dist/service/kms/error/sim-kms.error.d.ts.map +1 -0
  198. package/dist/service/kms/error/sim-kms.error.js +101 -0
  199. package/dist/service/kms/error/sim-kms.error.js.map +1 -0
  200. package/dist/service/kms/index.d.ts +8 -0
  201. package/dist/service/kms/index.d.ts.map +1 -0
  202. package/dist/service/kms/index.js +6 -0
  203. package/dist/service/kms/index.js.map +1 -0
  204. package/dist/service/kms/key/sim-kms-alias.d.ts +45 -0
  205. package/dist/service/kms/key/sim-kms-alias.d.ts.map +1 -0
  206. package/dist/service/kms/key/sim-kms-alias.js +59 -0
  207. package/dist/service/kms/key/sim-kms-alias.js.map +1 -0
  208. package/dist/service/kms/key/sim-kms-ciphertext-blob.d.ts +43 -0
  209. package/dist/service/kms/key/sim-kms-ciphertext-blob.d.ts.map +1 -0
  210. package/dist/service/kms/key/sim-kms-ciphertext-blob.js +89 -0
  211. package/dist/service/kms/key/sim-kms-ciphertext-blob.js.map +1 -0
  212. package/dist/service/kms/key/sim-kms-encryption-context.d.ts +34 -0
  213. package/dist/service/kms/key/sim-kms-encryption-context.d.ts.map +1 -0
  214. package/dist/service/kms/key/sim-kms-encryption-context.js +39 -0
  215. package/dist/service/kms/key/sim-kms-encryption-context.js.map +1 -0
  216. package/dist/service/kms/key/sim-kms-key-factory.d.ts +36 -0
  217. package/dist/service/kms/key/sim-kms-key-factory.d.ts.map +1 -0
  218. package/dist/service/kms/key/sim-kms-key-factory.js +47 -0
  219. package/dist/service/kms/key/sim-kms-key-factory.js.map +1 -0
  220. package/dist/service/kms/key/sim-kms-key-identifier.d.ts +44 -0
  221. package/dist/service/kms/key/sim-kms-key-identifier.d.ts.map +1 -0
  222. package/dist/service/kms/key/sim-kms-key-identifier.js +81 -0
  223. package/dist/service/kms/key/sim-kms-key-identifier.js.map +1 -0
  224. package/dist/service/kms/key/sim-kms-key-lifecycle.d.ts +71 -0
  225. package/dist/service/kms/key/sim-kms-key-lifecycle.d.ts.map +1 -0
  226. package/dist/service/kms/key/sim-kms-key-lifecycle.js +106 -0
  227. package/dist/service/kms/key/sim-kms-key-lifecycle.js.map +1 -0
  228. package/dist/service/kms/key/sim-kms-key-material.d.ts +36 -0
  229. package/dist/service/kms/key/sim-kms-key-material.d.ts.map +1 -0
  230. package/dist/service/kms/key/sim-kms-key-material.js +74 -0
  231. package/dist/service/kms/key/sim-kms-key-material.js.map +1 -0
  232. package/dist/service/kms/key/sim-kms-key-metadata.d.ts +45 -0
  233. package/dist/service/kms/key/sim-kms-key-metadata.d.ts.map +1 -0
  234. package/dist/service/kms/key/sim-kms-key-metadata.js +44 -0
  235. package/dist/service/kms/key/sim-kms-key-metadata.js.map +1 -0
  236. package/dist/service/kms/key/sim-kms-key-policy.d.ts +45 -0
  237. package/dist/service/kms/key/sim-kms-key-policy.d.ts.map +1 -0
  238. package/dist/service/kms/key/sim-kms-key-policy.js +69 -0
  239. package/dist/service/kms/key/sim-kms-key-policy.js.map +1 -0
  240. package/dist/service/kms/key/sim-kms-key-store.d.ts +58 -0
  241. package/dist/service/kms/key/sim-kms-key-store.d.ts.map +1 -0
  242. package/dist/service/kms/key/sim-kms-key-store.js +111 -0
  243. package/dist/service/kms/key/sim-kms-key-store.js.map +1 -0
  244. package/dist/service/kms/key/sim-kms-key.d.ts +88 -0
  245. package/dist/service/kms/key/sim-kms-key.d.ts.map +1 -0
  246. package/dist/service/kms/key/sim-kms-key.js +106 -0
  247. package/dist/service/kms/key/sim-kms-key.js.map +1 -0
  248. package/dist/service/kms/key/sim-kms-policy-document.d.ts +30 -0
  249. package/dist/service/kms/key/sim-kms-policy-document.d.ts.map +1 -0
  250. package/dist/service/kms/key/sim-kms-policy-document.js +54 -0
  251. package/dist/service/kms/key/sim-kms-policy-document.js.map +1 -0
  252. package/dist/service/kms/sdk/sim-kms-sdk-command-router.d.ts +18 -0
  253. package/dist/service/kms/sdk/sim-kms-sdk-command-router.d.ts.map +1 -0
  254. package/dist/service/kms/sdk/sim-kms-sdk-command-router.js +80 -0
  255. package/dist/service/kms/sdk/sim-kms-sdk-command-router.js.map +1 -0
  256. package/dist/service/kms/sim-kms.d.ts +105 -0
  257. package/dist/service/kms/sim-kms.d.ts.map +1 -0
  258. package/dist/service/kms/sim-kms.js +187 -0
  259. package/dist/service/kms/sim-kms.js.map +1 -0
  260. package/dist/service/lambda/command/create-function/create-function.handler.d.ts.map +1 -1
  261. package/dist/service/lambda/command/create-function/create-function.handler.js +3 -0
  262. package/dist/service/lambda/command/create-function/create-function.handler.js.map +1 -1
  263. package/dist/service/lambda/function/code/sim-lambda-code-resolver.d.ts +6 -0
  264. package/dist/service/lambda/function/code/sim-lambda-code-resolver.d.ts.map +1 -1
  265. package/dist/service/lambda/function/code/sim-lambda-code-resolver.js +1 -0
  266. package/dist/service/lambda/function/code/sim-lambda-code-resolver.js.map +1 -1
  267. package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts +15 -0
  268. package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts.map +1 -1
  269. package/dist/service/lambda/function/code/sim-lambda-executable-code.js +5 -0
  270. package/dist/service/lambda/function/code/sim-lambda-executable-code.js.map +1 -1
  271. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code-factory.d.ts +3 -0
  272. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code-factory.d.ts.map +1 -1
  273. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code-factory.js +3 -0
  274. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code-factory.js.map +1 -1
  275. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.d.ts +11 -0
  276. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.d.ts.map +1 -1
  277. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.js +7 -2
  278. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.js.map +1 -1
  279. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.d.ts +6 -5
  280. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.d.ts.map +1 -1
  281. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.js +10 -5
  282. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.js.map +1 -1
  283. package/dist/service/lambda/function/invoke/sim-lambda-process-clock.d.ts +53 -0
  284. package/dist/service/lambda/function/invoke/sim-lambda-process-clock.d.ts.map +1 -0
  285. package/dist/service/lambda/function/invoke/sim-lambda-process-clock.js +101 -0
  286. package/dist/service/lambda/function/invoke/sim-lambda-process-clock.js.map +1 -0
  287. package/dist/service/lambda/function/sim-lambda-function.d.ts +8 -0
  288. package/dist/service/lambda/function/sim-lambda-function.d.ts.map +1 -1
  289. package/dist/service/lambda/function/sim-lambda-function.js +15 -1
  290. package/dist/service/lambda/function/sim-lambda-function.js.map +1 -1
  291. package/dist/service/lambda/serve/sim-lambda-url-router.js +1 -1
  292. package/dist/service/lambda/serve/sim-lambda-url-router.js.map +1 -1
  293. package/dist/service/route53/resolve/sim-r53-service-target-resolver.d.ts +14 -0
  294. package/dist/service/route53/resolve/sim-r53-service-target-resolver.d.ts.map +1 -1
  295. package/dist/service/route53/resolve/sim-r53-service-target-resolver.js +38 -0
  296. package/dist/service/route53/resolve/sim-r53-service-target-resolver.js.map +1 -1
  297. package/dist/service/s3/bucket/public-access/sim-s3-pinning-condition.d.ts +7 -0
  298. package/dist/service/s3/bucket/public-access/sim-s3-pinning-condition.d.ts.map +1 -0
  299. package/dist/service/s3/bucket/public-access/sim-s3-pinning-condition.js +73 -0
  300. package/dist/service/s3/bucket/public-access/sim-s3-pinning-condition.js.map +1 -0
  301. package/dist/service/s3/bucket/public-access/sim-s3-public-access-block.d.ts +61 -0
  302. package/dist/service/s3/bucket/public-access/sim-s3-public-access-block.d.ts.map +1 -0
  303. package/dist/service/s3/bucket/public-access/sim-s3-public-access-block.js +57 -0
  304. package/dist/service/s3/bucket/public-access/sim-s3-public-access-block.js.map +1 -0
  305. package/dist/service/s3/bucket/public-access/sim-s3-public-policy-guard.d.ts +19 -0
  306. package/dist/service/s3/bucket/public-access/sim-s3-public-policy-guard.d.ts.map +1 -0
  307. package/dist/service/s3/bucket/public-access/sim-s3-public-policy-guard.js +28 -0
  308. package/dist/service/s3/bucket/public-access/sim-s3-public-policy-guard.js.map +1 -0
  309. package/dist/service/s3/bucket/public-access/sim-s3-public-policy.d.ts +18 -0
  310. package/dist/service/s3/bucket/public-access/sim-s3-public-policy.d.ts.map +1 -0
  311. package/dist/service/s3/bucket/public-access/sim-s3-public-policy.js +35 -0
  312. package/dist/service/s3/bucket/public-access/sim-s3-public-policy.js.map +1 -0
  313. package/dist/service/s3/bucket/public-access/sim-s3-public-principal.d.ts +11 -0
  314. package/dist/service/s3/bucket/public-access/sim-s3-public-principal.d.ts.map +1 -0
  315. package/dist/service/s3/bucket/public-access/sim-s3-public-principal.js +34 -0
  316. package/dist/service/s3/bucket/public-access/sim-s3-public-principal.js.map +1 -0
  317. package/dist/service/s3/bucket/sim-s3-bucket-arn.d.ts +9 -0
  318. package/dist/service/s3/bucket/sim-s3-bucket-arn.d.ts.map +1 -0
  319. package/dist/service/s3/bucket/sim-s3-bucket-arn.js +10 -0
  320. package/dist/service/s3/bucket/sim-s3-bucket-arn.js.map +1 -0
  321. package/dist/service/s3/bucket/sim-s3-bucket.d.ts +25 -0
  322. package/dist/service/s3/bucket/sim-s3-bucket.d.ts.map +1 -1
  323. package/dist/service/s3/bucket/sim-s3-bucket.js +34 -1
  324. package/dist/service/s3/bucket/sim-s3-bucket.js.map +1 -1
  325. package/dist/service/s3/bucket/sim-s3-endpoint-url.d.ts +16 -0
  326. package/dist/service/s3/bucket/sim-s3-endpoint-url.d.ts.map +1 -0
  327. package/dist/service/s3/bucket/sim-s3-endpoint-url.js +19 -0
  328. package/dist/service/s3/bucket/sim-s3-endpoint-url.js.map +1 -0
  329. package/dist/service/s3/bucket/website/sim-s3-public-website.fixture.d.ts +13 -0
  330. package/dist/service/s3/bucket/website/sim-s3-public-website.fixture.d.ts.map +1 -0
  331. package/dist/service/s3/bucket/website/sim-s3-public-website.fixture.js +36 -0
  332. package/dist/service/s3/bucket/website/sim-s3-public-website.fixture.js.map +1 -0
  333. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.d.ts +27 -0
  334. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.d.ts.map +1 -0
  335. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.js +92 -0
  336. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.js.map +1 -0
  337. package/dist/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.d.ts +32 -0
  338. package/dist/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.d.ts.map +1 -0
  339. package/dist/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.js +55 -0
  340. package/dist/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.js.map +1 -0
  341. package/dist/service/s3/cfn/sim-cfn-s3-resource-factory.d.ts +2 -4
  342. package/dist/service/s3/cfn/sim-cfn-s3-resource-factory.d.ts.map +1 -1
  343. package/dist/service/s3/cfn/sim-cfn-s3-resource-factory.js +10 -61
  344. package/dist/service/s3/cfn/sim-cfn-s3-resource-factory.js.map +1 -1
  345. package/dist/service/s3/command/authorize/sim-s3-bucket-resource-policies.d.ts +11 -0
  346. package/dist/service/s3/command/authorize/sim-s3-bucket-resource-policies.d.ts.map +1 -0
  347. package/dist/service/s3/command/authorize/sim-s3-bucket-resource-policies.js +22 -0
  348. package/dist/service/s3/command/authorize/sim-s3-bucket-resource-policies.js.map +1 -0
  349. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy-authorizer.d.ts +23 -0
  350. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy-authorizer.d.ts.map +1 -0
  351. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy-authorizer.js +36 -0
  352. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy-authorizer.js.map +1 -0
  353. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.command.d.ts +20 -0
  354. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.command.d.ts.map +1 -0
  355. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.command.js +2 -0
  356. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.command.js.map +1 -0
  357. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.handler.d.ts +32 -0
  358. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.handler.d.ts.map +1 -0
  359. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.handler.js +37 -0
  360. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.handler.js.map +1 -0
  361. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.command.d.ts +20 -0
  362. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.command.d.ts.map +1 -0
  363. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.command.js +2 -0
  364. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.command.js.map +1 -0
  365. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.handler.d.ts +30 -0
  366. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.handler.d.ts.map +1 -0
  367. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.handler.js +35 -0
  368. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.handler.js.map +1 -0
  369. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy-authorizer.d.ts +20 -0
  370. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy-authorizer.d.ts.map +1 -0
  371. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy-authorizer.js +33 -0
  372. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy-authorizer.js.map +1 -0
  373. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.command.d.ts +24 -0
  374. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.command.d.ts.map +1 -0
  375. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.command.js +2 -0
  376. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.command.js.map +1 -0
  377. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.handler.d.ts +29 -0
  378. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.handler.d.ts.map +1 -0
  379. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.handler.js +40 -0
  380. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.handler.js.map +1 -0
  381. package/dist/service/s3/command/get-public-access-block/get-public-access-block.command.d.ts +22 -0
  382. package/dist/service/s3/command/get-public-access-block/get-public-access-block.command.d.ts.map +1 -0
  383. package/dist/service/s3/command/get-public-access-block/get-public-access-block.command.js +2 -0
  384. package/dist/service/s3/command/get-public-access-block/get-public-access-block.command.js.map +1 -0
  385. package/dist/service/s3/command/get-public-access-block/get-public-access-block.handler.d.ts +32 -0
  386. package/dist/service/s3/command/get-public-access-block/get-public-access-block.handler.d.ts.map +1 -0
  387. package/dist/service/s3/command/get-public-access-block/get-public-access-block.handler.js +39 -0
  388. package/dist/service/s3/command/get-public-access-block/get-public-access-block.handler.js.map +1 -0
  389. package/dist/service/s3/command/public-access-block/sim-s3-public-access-block-authorizer.d.ts +31 -0
  390. package/dist/service/s3/command/public-access-block/sim-s3-public-access-block-authorizer.d.ts.map +1 -0
  391. package/dist/service/s3/command/public-access-block/sim-s3-public-access-block-authorizer.js +48 -0
  392. package/dist/service/s3/command/public-access-block/sim-s3-public-access-block-authorizer.js.map +1 -0
  393. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.d.ts +1 -0
  394. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.d.ts.map +1 -1
  395. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.js +7 -6
  396. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.js.map +1 -1
  397. package/dist/service/s3/command/put-public-access-block/put-public-access-block.command.d.ts +22 -0
  398. package/dist/service/s3/command/put-public-access-block/put-public-access-block.command.d.ts.map +1 -0
  399. package/dist/service/s3/command/put-public-access-block/put-public-access-block.command.js +2 -0
  400. package/dist/service/s3/command/put-public-access-block/put-public-access-block.command.js.map +1 -0
  401. package/dist/service/s3/command/put-public-access-block/put-public-access-block.handler.d.ts +33 -0
  402. package/dist/service/s3/command/put-public-access-block/put-public-access-block.handler.d.ts.map +1 -0
  403. package/dist/service/s3/command/put-public-access-block/put-public-access-block.handler.js +40 -0
  404. package/dist/service/s3/command/put-public-access-block/put-public-access-block.handler.js.map +1 -0
  405. package/dist/service/s3/command/require-sim-s3-bucket.d.ts +10 -0
  406. package/dist/service/s3/command/require-sim-s3-bucket.d.ts.map +1 -0
  407. package/dist/service/s3/command/require-sim-s3-bucket.js +16 -0
  408. package/dist/service/s3/command/require-sim-s3-bucket.js.map +1 -0
  409. package/dist/service/s3/command/sim-s3-command-handlers.d.ts +91 -0
  410. package/dist/service/s3/command/sim-s3-command-handlers.d.ts.map +1 -0
  411. package/dist/service/s3/command/sim-s3-command-handlers.js +115 -0
  412. package/dist/service/s3/command/sim-s3-command-handlers.js.map +1 -0
  413. package/dist/service/s3/command/sim-s3-command.types.d.ts +19 -0
  414. package/dist/service/s3/command/sim-s3-command.types.d.ts.map +1 -0
  415. package/dist/service/s3/command/sim-s3-command.types.js +8 -0
  416. package/dist/service/s3/command/sim-s3-command.types.js.map +1 -0
  417. package/dist/service/s3/error/sim-s3-checksum.error.d.ts +28 -0
  418. package/dist/service/s3/error/sim-s3-checksum.error.d.ts.map +1 -0
  419. package/dist/service/s3/error/sim-s3-checksum.error.js +32 -0
  420. package/dist/service/s3/error/sim-s3-checksum.error.js.map +1 -0
  421. package/dist/service/s3/error/sim-s3.error.d.ts +20 -0
  422. package/dist/service/s3/error/sim-s3.error.d.ts.map +1 -1
  423. package/dist/service/s3/error/sim-s3.error.js +24 -0
  424. package/dist/service/s3/error/sim-s3.error.js.map +1 -1
  425. package/dist/service/s3/sdk/sim-s3-sdk-command-router.d.ts.map +1 -1
  426. package/dist/service/s3/sdk/sim-s3-sdk-command-router.js +20 -0
  427. package/dist/service/s3/sdk/sim-s3-sdk-command-router.js.map +1 -1
  428. package/dist/service/s3/serve/sim-s3-bucket-locator.d.ts +40 -0
  429. package/dist/service/s3/serve/sim-s3-bucket-locator.d.ts.map +1 -0
  430. package/dist/service/s3/serve/sim-s3-bucket-locator.js +59 -0
  431. package/dist/service/s3/serve/sim-s3-bucket-locator.js.map +1 -0
  432. package/dist/service/s3/serve/sim-s3-controller.d.ts +7 -0
  433. package/dist/service/s3/serve/sim-s3-controller.d.ts.map +1 -1
  434. package/dist/service/s3/serve/sim-s3-controller.js +14 -2
  435. package/dist/service/s3/serve/sim-s3-controller.js.map +1 -1
  436. package/dist/service/s3/serve/sim-s3-get-object-controller.d.ts +40 -6
  437. package/dist/service/s3/serve/sim-s3-get-object-controller.d.ts.map +1 -1
  438. package/dist/service/s3/serve/sim-s3-get-object-controller.js +80 -49
  439. package/dist/service/s3/serve/sim-s3-get-object-controller.js.map +1 -1
  440. package/dist/service/s3/serve/sim-s3-object-address.d.ts +42 -0
  441. package/dist/service/s3/serve/sim-s3-object-address.d.ts.map +1 -0
  442. package/dist/service/s3/serve/sim-s3-object-address.js +66 -0
  443. package/dist/service/s3/serve/sim-s3-object-address.js.map +1 -0
  444. package/dist/service/s3/serve/sim-s3-request-router.d.ts +18 -13
  445. package/dist/service/s3/serve/sim-s3-request-router.d.ts.map +1 -1
  446. package/dist/service/s3/serve/sim-s3-request-router.js +72 -48
  447. package/dist/service/s3/serve/sim-s3-request-router.js.map +1 -1
  448. package/dist/service/s3/serve/sim-s3-rest-controller.d.ts +36 -0
  449. package/dist/service/s3/serve/sim-s3-rest-controller.d.ts.map +1 -0
  450. package/dist/service/s3/serve/sim-s3-rest-controller.js +92 -0
  451. package/dist/service/s3/serve/sim-s3-rest-controller.js.map +1 -0
  452. package/dist/service/s3/serve/sim-s3-rest-error-response.d.ts +28 -0
  453. package/dist/service/s3/serve/sim-s3-rest-error-response.d.ts.map +1 -0
  454. package/dist/service/s3/serve/sim-s3-rest-error-response.js +63 -0
  455. package/dist/service/s3/serve/sim-s3-rest-error-response.js.map +1 -0
  456. package/dist/service/s3/serve/sim-s3-rest-refusal.d.ts +7 -0
  457. package/dist/service/s3/serve/sim-s3-rest-refusal.d.ts.map +1 -0
  458. package/dist/service/s3/serve/sim-s3-rest-refusal.js +18 -0
  459. package/dist/service/s3/serve/sim-s3-rest-refusal.js.map +1 -0
  460. package/dist/service/s3/serve/sim-s3-route.d.ts +40 -0
  461. package/dist/service/s3/serve/sim-s3-route.d.ts.map +1 -0
  462. package/dist/service/s3/serve/sim-s3-route.js +7 -0
  463. package/dist/service/s3/serve/sim-s3-route.js.map +1 -0
  464. package/dist/service/s3/serve/sim-s3-upload-checksum.d.ts +27 -0
  465. package/dist/service/s3/serve/sim-s3-upload-checksum.d.ts.map +1 -0
  466. package/dist/service/s3/serve/sim-s3-upload-checksum.js +86 -0
  467. package/dist/service/s3/serve/sim-s3-upload-checksum.js.map +1 -0
  468. package/dist/service/s3/serve/website/sim-s3-website-object-loader.d.ts +51 -0
  469. package/dist/service/s3/serve/website/sim-s3-website-object-loader.d.ts.map +1 -0
  470. package/dist/service/s3/serve/website/sim-s3-website-object-loader.js +75 -0
  471. package/dist/service/s3/serve/website/sim-s3-website-object-loader.js.map +1 -0
  472. package/dist/service/s3/serve/website/sim-s3-website-object.d.ts +18 -0
  473. package/dist/service/s3/serve/website/sim-s3-website-object.d.ts.map +1 -0
  474. package/dist/service/s3/serve/website/sim-s3-website-object.js +28 -0
  475. package/dist/service/s3/serve/website/sim-s3-website-object.js.map +1 -0
  476. package/dist/service/s3/serve/website/sim-s3-website-responses.d.ts +27 -0
  477. package/dist/service/s3/serve/website/sim-s3-website-responses.d.ts.map +1 -0
  478. package/dist/service/s3/serve/website/sim-s3-website-responses.js +44 -0
  479. package/dist/service/s3/serve/website/sim-s3-website-responses.js.map +1 -0
  480. package/dist/service/s3/sim-s3.d.ts +34 -9
  481. package/dist/service/s3/sim-s3.d.ts.map +1 -1
  482. package/dist/service/s3/sim-s3.js +65 -55
  483. package/dist/service/s3/sim-s3.js.map +1 -1
  484. package/dist/util/clock/sim-clock-date.d.ts +20 -0
  485. package/dist/util/clock/sim-clock-date.d.ts.map +1 -0
  486. package/dist/util/clock/sim-clock-date.js +43 -0
  487. package/dist/util/clock/sim-clock-date.js.map +1 -0
  488. package/package.json +17 -11
@@ -0,0 +1,58 @@
1
+ import { SimIamAccessDenied } from "../../../iam/error/sim-iam.error.js";
2
+ /**
3
+ * Applies simulated IAM authorization to KMS requests.
4
+ *
5
+ * KMS splits into two kinds of request, and they authorize differently:
6
+ *
7
+ * - operations on an existing key, where the key policy is mandatory and must
8
+ * allow the request, so an identity policy alone never reaches the key;
9
+ * - operations with no key to speak of, such as CreateKey and ListKeys, which
10
+ * real KMS gives no resource-level permissions and so are authorized against
11
+ * `*` with identity policies alone.
12
+ */
13
+ export class SimKmsAuthorizer {
14
+ iam;
15
+ accountRegionScope;
16
+ constructor(properties) {
17
+ this.iam = properties.iam;
18
+ this.accountRegionScope = properties.accountRegionScope;
19
+ }
20
+ /**
21
+ * Ensure the caller may perform an action on a key.
22
+ *
23
+ * The key's policy is supplied as the resource side and is required to
24
+ * allow: this is the rule that makes a KMS key policy the root of trust for
25
+ * its key rather than one more input to the decision.
26
+ */
27
+ authorizeKey(action, key, caller) {
28
+ const decision = this.iam.authorize({
29
+ action,
30
+ resource: key.arn,
31
+ caller,
32
+ resourcePolicies: [key.policy.asResourcePolicy()],
33
+ requiresResourcePolicyAllow: true,
34
+ });
35
+ if (decision.isDenied) {
36
+ throw new SimIamAccessDenied({
37
+ principal: decision.caller.principal,
38
+ action,
39
+ resource: key.arn,
40
+ });
41
+ }
42
+ }
43
+ /**
44
+ * Ensure the caller may perform an action that names no particular key.
45
+ */
46
+ authorizeAccount(action, caller) {
47
+ const resource = `arn:aws:kms:${this.accountRegionScope.regionName}:${this.accountRegionScope.accountId}:key/*`;
48
+ const decision = this.iam.authorize({ action, resource, caller });
49
+ if (decision.isDenied) {
50
+ throw new SimIamAccessDenied({
51
+ principal: decision.caller.principal,
52
+ action,
53
+ resource,
54
+ });
55
+ }
56
+ }
57
+ }
58
+ //# sourceMappingURL=sim-kms-authorizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-kms-authorizer.js","sourceRoot":"","sources":["../../../../../src/service/kms/command/authorize/sim-kms-authorizer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAQzE;;;;;;;;;;GAUG;AACH,MAAM,OAAO,gBAAgB;IACV,GAAG,CAA0B;IAC7B,kBAAkB,CAA2B;IAE9D,YAAY,UAAsC;QAChD,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;QAC1B,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,kBAAkB,CAAC;IAC1D,CAAC;IAED;;;;;;OAMG;IACH,YAAY,CAAC,MAAc,EAAE,GAAc,EAAE,MAAqB;QAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;YAClC,MAAM;YACN,QAAQ,EAAE,GAAG,CAAC,GAAG;YACjB,MAAM;YACN,gBAAgB,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACjD,2BAA2B,EAAE,IAAI;SAClC,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,kBAAkB,CAAC;gBAC3B,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS;gBACpC,MAAM;gBACN,QAAQ,EAAE,GAAG,CAAC,GAAG;aAClB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,MAAc,EAAE,MAAqB;QACpD,MAAM,QAAQ,GAAG,eAAe,IAAI,CAAC,kBAAkB,CAAC,UAAU,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,QAAQ,CAAC;QAEhH,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAElE,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,kBAAkB,CAAC;gBAC3B,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS;gBACpC,MAAM;gBACN,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,68 @@
1
+ import type { SimResponseMetadata } from "../../../aws/metadata/response-metadata.type.js";
2
+ import type { SimKmsEncryptionContext } from "../../key/sim-kms-encryption-context.js";
3
+ /**
4
+ * Minimal structural sim KMS Encrypt command.
5
+ *
6
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/kms/command/EncryptCommand/
7
+ */
8
+ export interface SimEncryptCommand {
9
+ readonly input: SimEncryptCommandInput;
10
+ }
11
+ export interface SimEncryptCommandInput {
12
+ readonly KeyId?: string | undefined;
13
+ readonly Plaintext?: Uint8Array | undefined;
14
+ readonly EncryptionContext?: SimKmsEncryptionContext | undefined;
15
+ readonly EncryptionAlgorithm?: string | undefined;
16
+ }
17
+ export interface SimEncryptCommandOutput {
18
+ readonly CiphertextBlob?: Uint8Array | undefined;
19
+ readonly KeyId?: string | undefined;
20
+ readonly EncryptionAlgorithm?: string | undefined;
21
+ readonly $metadata: SimResponseMetadata;
22
+ }
23
+ /**
24
+ * Minimal structural sim KMS Decrypt command.
25
+ *
26
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/kms/command/DecryptCommand/
27
+ */
28
+ export interface SimDecryptCommand {
29
+ readonly input: SimDecryptCommandInput;
30
+ }
31
+ export interface SimDecryptCommandInput {
32
+ readonly CiphertextBlob?: Uint8Array | undefined;
33
+ /**
34
+ * Optional for a symmetric key, because the ciphertext names the key that
35
+ * produced it. Supplying it asks KMS to check that expectation, and the
36
+ * request fails if the ciphertext came from a different key.
37
+ */
38
+ readonly KeyId?: string | undefined;
39
+ readonly EncryptionContext?: SimKmsEncryptionContext | undefined;
40
+ readonly EncryptionAlgorithm?: string | undefined;
41
+ }
42
+ export interface SimDecryptCommandOutput {
43
+ readonly Plaintext?: Uint8Array | undefined;
44
+ readonly KeyId?: string | undefined;
45
+ readonly EncryptionAlgorithm?: string | undefined;
46
+ readonly $metadata: SimResponseMetadata;
47
+ }
48
+ /**
49
+ * Minimal structural sim KMS GenerateDataKey command.
50
+ *
51
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/kms/command/GenerateDataKeyCommand/
52
+ */
53
+ export interface SimGenerateDataKeyCommand {
54
+ readonly input: SimGenerateDataKeyCommandInput;
55
+ }
56
+ export interface SimGenerateDataKeyCommandInput {
57
+ readonly KeyId?: string | undefined;
58
+ readonly KeySpec?: string | undefined;
59
+ readonly NumberOfBytes?: number | undefined;
60
+ readonly EncryptionContext?: SimKmsEncryptionContext | undefined;
61
+ }
62
+ export interface SimGenerateDataKeyCommandOutput {
63
+ readonly CiphertextBlob?: Uint8Array | undefined;
64
+ readonly Plaintext?: Uint8Array | undefined;
65
+ readonly KeyId?: string | undefined;
66
+ readonly $metadata: SimResponseMetadata;
67
+ }
68
+ //# sourceMappingURL=crypto.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.command.d.ts","sourceRoot":"","sources":["../../../../../src/service/kms/command/crypto/crypto.command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAEvF;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC;CACxC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,uBAAuB,GAAG,SAAS,CAAC;IACjE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnD;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,cAAc,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;CACzC;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC;CACxC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,cAAc,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAEjD;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEpC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,uBAAuB,GAAG,SAAS,CAAC;IACjE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnD;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;CACzC;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,EAAE,8BAA8B,CAAC;CAChD;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,uBAAuB,GAAG,SAAS,CAAC;CAClE;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,cAAc,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,SAAS,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;CACzC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=crypto.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.command.js","sourceRoot":"","sources":["../../../../../src/service/kms/command/crypto/crypto.command.ts"],"names":[],"mappings":""}
@@ -0,0 +1,40 @@
1
+ import type { SimKmsKey } from "../../key/sim-kms-key.js";
2
+ import type { SimKmsKeyStore } from "../../key/sim-kms-key-store.js";
3
+ /**
4
+ * The only encryption algorithm a symmetric KMS key supports.
5
+ */
6
+ export declare const simKmsSymmetricAlgorithm = "SYMMETRIC_DEFAULT";
7
+ /**
8
+ * Resolves the key behind a ciphertext, and checks the caller's expectations.
9
+ *
10
+ * Decrypt is the one KMS operation whose target key comes from the ciphertext
11
+ * rather than the request, so working out which key that is, and what to say
12
+ * when it is not the one the caller expected, is its own small job.
13
+ */
14
+ export declare class SimKmsCiphertextKey {
15
+ private readonly keys;
16
+ constructor(keys: SimKmsKeyStore);
17
+ /**
18
+ * Find the key a ciphertext was produced under.
19
+ *
20
+ * A blob naming a key this scope does not have is an unreadable ciphertext
21
+ * rather than a missing key, because the caller never named the key and so
22
+ * cannot be told which one is missing.
23
+ */
24
+ behind(keyArn: string): SimKmsKey;
25
+ /**
26
+ * Check a supplied KeyId against the key the ciphertext actually names.
27
+ *
28
+ * A KeyId naming no key at all is a missing key rather than the wrong one,
29
+ * so it is resolved the same way every other operation resolves its target.
30
+ */
31
+ requireExpected(keyId: string | undefined, key: SimKmsKey): void;
32
+ /**
33
+ * Refuse an encryption algorithm this simulation does not model.
34
+ *
35
+ * Only symmetric keys are simulated, so an asymmetric algorithm is refused
36
+ * rather than quietly treated as the symmetric one.
37
+ */
38
+ requireSymmetricAlgorithm(algorithm: string | undefined): void;
39
+ }
40
+ //# sourceMappingURL=sim-kms-ciphertext-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-kms-ciphertext-key.d.ts","sourceRoot":"","sources":["../../../../../src/service/kms/command/crypto/sim-kms-ciphertext-key.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE;;GAEG;AACH,eAAO,MAAM,wBAAwB,sBAAsB,CAAC;AAE5D;;;;;;GAMG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IAEtC,YAAY,IAAI,EAAE,cAAc,EAE/B;IAED;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAQhC;IAED;;;;;OAKG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,CAU/D;IAED;;;;;OAKG;IACH,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAM7D;CACF"}
@@ -0,0 +1,58 @@
1
+ import { SimKmsIncorrectKeyException, SimKmsInvalidCiphertextException, SimKmsInvalidKeyUsageException, } from "../../error/sim-kms.error.js";
2
+ /**
3
+ * The only encryption algorithm a symmetric KMS key supports.
4
+ */
5
+ export const simKmsSymmetricAlgorithm = "SYMMETRIC_DEFAULT";
6
+ /**
7
+ * Resolves the key behind a ciphertext, and checks the caller's expectations.
8
+ *
9
+ * Decrypt is the one KMS operation whose target key comes from the ciphertext
10
+ * rather than the request, so working out which key that is, and what to say
11
+ * when it is not the one the caller expected, is its own small job.
12
+ */
13
+ export class SimKmsCiphertextKey {
14
+ keys;
15
+ constructor(keys) {
16
+ this.keys = keys;
17
+ }
18
+ /**
19
+ * Find the key a ciphertext was produced under.
20
+ *
21
+ * A blob naming a key this scope does not have is an unreadable ciphertext
22
+ * rather than a missing key, because the caller never named the key and so
23
+ * cannot be told which one is missing.
24
+ */
25
+ behind(keyArn) {
26
+ const key = this.keys.find(keyArn);
27
+ if (key === undefined) {
28
+ throw new SimKmsInvalidCiphertextException();
29
+ }
30
+ return key;
31
+ }
32
+ /**
33
+ * Check a supplied KeyId against the key the ciphertext actually names.
34
+ *
35
+ * A KeyId naming no key at all is a missing key rather than the wrong one,
36
+ * so it is resolved the same way every other operation resolves its target.
37
+ */
38
+ requireExpected(keyId, key) {
39
+ if (keyId === undefined) {
40
+ return;
41
+ }
42
+ if (this.keys.require(keyId).keyId !== key.keyId) {
43
+ throw new SimKmsIncorrectKeyException(`The ciphertext was not encrypted under the key '${keyId}'`);
44
+ }
45
+ }
46
+ /**
47
+ * Refuse an encryption algorithm this simulation does not model.
48
+ *
49
+ * Only symmetric keys are simulated, so an asymmetric algorithm is refused
50
+ * rather than quietly treated as the symmetric one.
51
+ */
52
+ requireSymmetricAlgorithm(algorithm) {
53
+ if (algorithm !== undefined && algorithm !== simKmsSymmetricAlgorithm) {
54
+ throw new SimKmsInvalidKeyUsageException(`Encryption algorithm '${algorithm}' is not supported: simulated KMS keys are symmetric, which supports only ${simKmsSymmetricAlgorithm}`);
55
+ }
56
+ }
57
+ }
58
+ //# sourceMappingURL=sim-kms-ciphertext-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-kms-ciphertext-key.js","sourceRoot":"","sources":["../../../../../src/service/kms/command/crypto/sim-kms-ciphertext-key.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,gCAAgC,EAChC,8BAA8B,GAC/B,MAAM,8BAA8B,CAAC;AAItC;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,mBAAmB,CAAC;AAE5D;;;;;;GAMG;AACH,MAAM,OAAO,mBAAmB;IACb,IAAI,CAAiB;IAEtC,YAAY,IAAoB;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,MAAc;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEnC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,gCAAgC,EAAE,CAAC;QAC/C,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACH,eAAe,CAAC,KAAyB,EAAE,GAAc;QACvD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC;YACjD,MAAM,IAAI,2BAA2B,CACnC,mDAAmD,KAAK,GAAG,CAC5D,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,yBAAyB,CAAC,SAA6B;QACrD,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,wBAAwB,EAAE,CAAC;YACtE,MAAM,IAAI,8BAA8B,CACtC,yBAAyB,SAAS,6EAA6E,wBAAwB,EAAE,CAC1I,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,38 @@
1
+ import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
2
+ import type { SimKmsKeyStore } from "../../key/sim-kms-key-store.js";
3
+ import type { SimKmsAuthorizer } from "../authorize/sim-kms-authorizer.js";
4
+ import type { SimDecryptCommand, SimDecryptCommandOutput, SimEncryptCommand, SimEncryptCommandOutput } from "./crypto.command.js";
5
+ interface SimKmsCryptoCommandsProperties {
6
+ readonly keys: SimKmsKeyStore;
7
+ readonly authorizer: SimKmsAuthorizer;
8
+ }
9
+ interface SimKmsCryptoCommandOptions {
10
+ readonly caller?: SimAwsCaller;
11
+ }
12
+ /**
13
+ * The Encrypt and Decrypt commands of one simulated KMS scope.
14
+ *
15
+ * They share the key store, the authorizer and the ciphertext blob format, so
16
+ * they are grouped rather than wired separately on the facade.
17
+ */
18
+ export declare class SimKmsCryptoCommands {
19
+ private readonly keys;
20
+ private readonly authorizer;
21
+ private readonly blob;
22
+ private readonly ciphertextKey;
23
+ constructor(properties: SimKmsCryptoCommandsProperties);
24
+ /**
25
+ * Encrypt plaintext under a key.
26
+ */
27
+ encrypt(command: SimEncryptCommand, options?: SimKmsCryptoCommandOptions): SimEncryptCommandOutput;
28
+ /**
29
+ * Decrypt a ciphertext produced by this simulation.
30
+ *
31
+ * The key comes from the ciphertext rather than the request, which is why
32
+ * KeyId is optional for a symmetric key. Authorization therefore happens
33
+ * against the key the blob names, once it is known.
34
+ */
35
+ decrypt(command: SimDecryptCommand, options?: SimKmsCryptoCommandOptions): SimDecryptCommandOutput;
36
+ }
37
+ export {};
38
+ //# sourceMappingURL=sim-kms-crypto-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-kms-crypto-commands.d.ts","sourceRoot":"","sources":["../../../../../src/service/kms/command/crypto/sim-kms-crypto-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAG1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAKrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,qBAAqB,CAAC;AAW7B,UAAU,8BAA8B;IACtC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;CACvC;AAED,UAAU,0BAA0B;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;CAChC;AAED;;;;;GAKG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA8B;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;IAEpD,YAAY,UAAU,EAAE,8BAA8B,EAIrD;IAED;;OAEG;IACH,OAAO,CACL,OAAO,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,0BAA0B,GACnC,uBAAuB,CA0BzB;IAED;;;;;;OAMG;IACH,OAAO,CACL,OAAO,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,0BAA0B,GACnC,uBAAuB,CAuBzB;CACF"}
@@ -0,0 +1,74 @@
1
+ import { SimKmsValidationException } from "../../error/sim-kms.error.js";
2
+ import { SimKmsCiphertextBlob } from "../../key/sim-kms-ciphertext-blob.js";
3
+ import { SimKmsCiphertextKey, simKmsSymmetricAlgorithm, } from "./sim-kms-ciphertext-key.js";
4
+ /**
5
+ * The largest plaintext Encrypt accepts for a symmetric key.
6
+ *
7
+ * This limit is the whole reason envelope encryption exists, so enforcing it
8
+ * is what makes a test that outgrows Encrypt fail here rather than in
9
+ * production.
10
+ */
11
+ const maxPlaintextBytes = 4096;
12
+ /**
13
+ * The Encrypt and Decrypt commands of one simulated KMS scope.
14
+ *
15
+ * They share the key store, the authorizer and the ciphertext blob format, so
16
+ * they are grouped rather than wired separately on the facade.
17
+ */
18
+ export class SimKmsCryptoCommands {
19
+ keys;
20
+ authorizer;
21
+ blob = new SimKmsCiphertextBlob();
22
+ ciphertextKey;
23
+ constructor(properties) {
24
+ this.keys = properties.keys;
25
+ this.authorizer = properties.authorizer;
26
+ this.ciphertextKey = new SimKmsCiphertextKey(properties.keys);
27
+ }
28
+ /**
29
+ * Encrypt plaintext under a key.
30
+ */
31
+ encrypt(command, options) {
32
+ const plaintext = command.input.Plaintext;
33
+ this.ciphertextKey.requireSymmetricAlgorithm(command.input.EncryptionAlgorithm);
34
+ if (plaintext === undefined || plaintext.length === 0) {
35
+ throw new SimKmsValidationException("Plaintext is required");
36
+ }
37
+ if (plaintext.length > maxPlaintextBytes) {
38
+ throw new SimKmsValidationException(`Plaintext of ${String(plaintext.length)} bytes exceeds the ${String(maxPlaintextBytes)} byte limit for a symmetric key; encrypt a data key from GenerateDataKey instead`);
39
+ }
40
+ const key = this.keys.require(command.input.KeyId);
41
+ this.authorizer.authorizeKey("kms:Encrypt", key, options?.caller);
42
+ return {
43
+ $metadata: {},
44
+ CiphertextBlob: key.encrypt(plaintext, command.input.EncryptionContext),
45
+ KeyId: key.arn,
46
+ EncryptionAlgorithm: simKmsSymmetricAlgorithm,
47
+ };
48
+ }
49
+ /**
50
+ * Decrypt a ciphertext produced by this simulation.
51
+ *
52
+ * The key comes from the ciphertext rather than the request, which is why
53
+ * KeyId is optional for a symmetric key. Authorization therefore happens
54
+ * against the key the blob names, once it is known.
55
+ */
56
+ decrypt(command, options) {
57
+ const ciphertextBlob = command.input.CiphertextBlob;
58
+ this.ciphertextKey.requireSymmetricAlgorithm(command.input.EncryptionAlgorithm);
59
+ if (ciphertextBlob === undefined) {
60
+ throw new SimKmsValidationException("CiphertextBlob is required");
61
+ }
62
+ const parts = this.blob.decode(ciphertextBlob);
63
+ const key = this.ciphertextKey.behind(parts.keyArn);
64
+ this.authorizer.authorizeKey("kms:Decrypt", key, options?.caller);
65
+ this.ciphertextKey.requireExpected(command.input.KeyId, key);
66
+ return {
67
+ $metadata: {},
68
+ Plaintext: key.decrypt(parts, command.input.EncryptionContext),
69
+ KeyId: key.arn,
70
+ EncryptionAlgorithm: simKmsSymmetricAlgorithm,
71
+ };
72
+ }
73
+ }
74
+ //# sourceMappingURL=sim-kms-crypto-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-kms-crypto-commands.js","sourceRoot":"","sources":["../../../../../src/service/kms/command/crypto/sim-kms-crypto-commands.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAE5E,OAAO,EACL,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,6BAA6B,CAAC;AASrC;;;;;;GAMG;AACH,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAW/B;;;;;GAKG;AACH,MAAM,OAAO,oBAAoB;IACd,IAAI,CAAiB;IACrB,UAAU,CAAmB;IAC7B,IAAI,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAClC,aAAa,CAAsB;IAEpD,YAAY,UAA0C;QACpD,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;QACxC,IAAI,CAAC,aAAa,GAAG,IAAI,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,OAAO,CACL,OAA0B,EAC1B,OAAoC;QAEpC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;QAE1C,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAC1C,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAClC,CAAC;QAEF,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,yBAAyB,CAAC,uBAAuB,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;YACzC,MAAM,IAAI,yBAAyB,CACjC,gBAAgB,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,sBAAsB,MAAM,CAAC,iBAAiB,CAAC,kFAAkF,CAC1K,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAElE,OAAO;YACL,SAAS,EAAE,EAAE;YACb,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC;YACvE,KAAK,EAAE,GAAG,CAAC,GAAG;YACd,mBAAmB,EAAE,wBAAwB;SAC9C,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CACL,OAA0B,EAC1B,OAAoC;QAEpC,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC;QAEpD,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAC1C,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAClC,CAAC;QAEF,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,yBAAyB,CAAC,4BAA4B,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEpD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAClE,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAE7D,OAAO;YACL,SAAS,EAAE,EAAE;YACb,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC;YAC9D,KAAK,EAAE,GAAG,CAAC,GAAG;YACd,mBAAmB,EAAE,wBAAwB;SAC9C,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Works out how many bytes of data key GenerateDataKey should produce.
3
+ *
4
+ * Real KMS insists on exactly one of KeySpec and NumberOfBytes, and refuses
5
+ * the request otherwise rather than picking a default. Following that keeps a
6
+ * request that AWS would reject from quietly succeeding here.
7
+ */
8
+ export declare class SimKmsDataKeySpec {
9
+ /**
10
+ * The data key length a request asks for.
11
+ */
12
+ lengthFor(keySpec: string | undefined, numberOfBytes: number | undefined): number;
13
+ private specLength;
14
+ private byteCount;
15
+ }
16
+ //# sourceMappingURL=sim-kms-data-key-spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-kms-data-key-spec.d.ts","sourceRoot":"","sources":["../../../../../src/service/kms/command/crypto/sim-kms-data-key-spec.ts"],"names":[],"mappings":"AAaA;;;;;;GAMG;AACH,qBAAa,iBAAiB;IAC5B;;OAEG;IACH,SAAS,CACP,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC,MAAM,CAkBR;IAED,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,SAAS;CAalB"}
@@ -0,0 +1,50 @@
1
+ import { SimKmsValidationException } from "../../error/sim-kms.error.js";
2
+ /**
3
+ * The data key lengths the named KeySpec values stand for.
4
+ */
5
+ const specLengths = new Map([
6
+ ["AES_256", 32],
7
+ ["AES_128", 16],
8
+ ]);
9
+ const minBytes = 1;
10
+ const maxBytes = 1024;
11
+ /**
12
+ * Works out how many bytes of data key GenerateDataKey should produce.
13
+ *
14
+ * Real KMS insists on exactly one of KeySpec and NumberOfBytes, and refuses
15
+ * the request otherwise rather than picking a default. Following that keeps a
16
+ * request that AWS would reject from quietly succeeding here.
17
+ */
18
+ export class SimKmsDataKeySpec {
19
+ /**
20
+ * The data key length a request asks for.
21
+ */
22
+ lengthFor(keySpec, numberOfBytes) {
23
+ if (keySpec !== undefined && numberOfBytes !== undefined) {
24
+ throw new SimKmsValidationException("Specify either KeySpec or NumberOfBytes, but not both");
25
+ }
26
+ if (keySpec !== undefined) {
27
+ return this.specLength(keySpec);
28
+ }
29
+ if (numberOfBytes !== undefined) {
30
+ return this.byteCount(numberOfBytes);
31
+ }
32
+ throw new SimKmsValidationException("Specify either KeySpec or NumberOfBytes");
33
+ }
34
+ specLength(keySpec) {
35
+ const length = specLengths.get(keySpec);
36
+ if (length === undefined) {
37
+ throw new SimKmsValidationException(`Unsupported KeySpec '${keySpec}': simulated KMS supports ${specLengths.keys().toArray().join(" and ")}`);
38
+ }
39
+ return length;
40
+ }
41
+ byteCount(numberOfBytes) {
42
+ if (!Number.isSafeInteger(numberOfBytes) ||
43
+ numberOfBytes < minBytes ||
44
+ numberOfBytes > maxBytes) {
45
+ throw new SimKmsValidationException(`NumberOfBytes must be a whole number between ${String(minBytes)} and ${String(maxBytes)}`);
46
+ }
47
+ return numberOfBytes;
48
+ }
49
+ }
50
+ //# sourceMappingURL=sim-kms-data-key-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-kms-data-key-spec.js","sourceRoot":"","sources":["../../../../../src/service/kms/command/crypto/sim-kms-data-key-spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,GAAG,IAAI,GAAG,CAAiB;IAC1C,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;CAChB,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,MAAM,QAAQ,GAAG,IAAI,CAAC;AAEtB;;;;;;GAMG;AACH,MAAM,OAAO,iBAAiB;IAC5B;;OAEG;IACH,SAAS,CACP,OAA2B,EAC3B,aAAiC;QAEjC,IAAI,OAAO,KAAK,SAAS,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YACzD,MAAM,IAAI,yBAAyB,CACjC,uDAAuD,CACxD,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,IAAI,yBAAyB,CACjC,yCAAyC,CAC1C,CAAC;IACJ,CAAC;IAEO,UAAU,CAAC,OAAe;QAChC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAExC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,yBAAyB,CACjC,wBAAwB,OAAO,6BAA6B,WAAW,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CACzG,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,SAAS,CAAC,aAAqB;QACrC,IACE,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC;YACpC,aAAa,GAAG,QAAQ;YACxB,aAAa,GAAG,QAAQ,EACxB,CAAC;YACD,MAAM,IAAI,yBAAyB,CACjC,gDAAgD,MAAM,CAAC,QAAQ,CAAC,QAAQ,MAAM,CAAC,QAAQ,CAAC,EAAE,CAC3F,CAAC;QACJ,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;CACF"}
@@ -0,0 +1,31 @@
1
+ import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
2
+ import type { SimKmsKeyStore } from "../../key/sim-kms-key-store.js";
3
+ import type { SimKmsAuthorizer } from "../authorize/sim-kms-authorizer.js";
4
+ import type { SimGenerateDataKeyCommand, SimGenerateDataKeyCommandOutput } from "./crypto.command.js";
5
+ interface SimKmsGenerateDataKeyProperties {
6
+ readonly keys: SimKmsKeyStore;
7
+ readonly authorizer: SimKmsAuthorizer;
8
+ }
9
+ interface SimKmsGenerateDataKeyOptions {
10
+ readonly caller?: SimAwsCaller;
11
+ }
12
+ /**
13
+ * The GenerateDataKey command of one simulated KMS scope.
14
+ *
15
+ * This is the envelope encryption primitive, and the answer to Encrypt's
16
+ * 4096 byte limit: the plaintext copy of the data key encrypts the data and is
17
+ * then discarded, while the encrypted copy is stored alongside it so the data
18
+ * key can be recovered through Decrypt later.
19
+ */
20
+ export declare class SimKmsGenerateDataKey {
21
+ private readonly keys;
22
+ private readonly authorizer;
23
+ private readonly dataKeySpec;
24
+ constructor(properties: SimKmsGenerateDataKeyProperties);
25
+ /**
26
+ * Generate a data key, returned both in the clear and encrypted.
27
+ */
28
+ handle(command: SimGenerateDataKeyCommand, options?: SimKmsGenerateDataKeyOptions): SimGenerateDataKeyCommandOutput;
29
+ }
30
+ export {};
31
+ //# sourceMappingURL=sim-kms-generate-data-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-kms-generate-data-key.d.ts","sourceRoot":"","sources":["../../../../../src/service/kms/command/crypto/sim-kms-generate-data-key.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EACV,yBAAyB,EACzB,+BAA+B,EAChC,MAAM,qBAAqB,CAAC;AAG7B,UAAU,+BAA+B;IACvC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;CACvC;AAED,UAAU,4BAA4B;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;CAChC;AAED;;;;;;;GAOG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2B;IAEvD,YAAY,UAAU,EAAE,+BAA+B,EAGtD;IAED;;OAEG;IACH,MAAM,CACJ,OAAO,EAAE,yBAAyB,EAClC,OAAO,CAAC,EAAE,4BAA4B,GACrC,+BAA+B,CAiBjC;CACF"}
@@ -0,0 +1,35 @@
1
+ import { randomBytes } from "node:crypto";
2
+ import { SimKmsDataKeySpec } from "./sim-kms-data-key-spec.js";
3
+ /**
4
+ * The GenerateDataKey command of one simulated KMS scope.
5
+ *
6
+ * This is the envelope encryption primitive, and the answer to Encrypt's
7
+ * 4096 byte limit: the plaintext copy of the data key encrypts the data and is
8
+ * then discarded, while the encrypted copy is stored alongside it so the data
9
+ * key can be recovered through Decrypt later.
10
+ */
11
+ export class SimKmsGenerateDataKey {
12
+ keys;
13
+ authorizer;
14
+ dataKeySpec = new SimKmsDataKeySpec();
15
+ constructor(properties) {
16
+ this.keys = properties.keys;
17
+ this.authorizer = properties.authorizer;
18
+ }
19
+ /**
20
+ * Generate a data key, returned both in the clear and encrypted.
21
+ */
22
+ handle(command, options) {
23
+ const length = this.dataKeySpec.lengthFor(command.input.KeySpec, command.input.NumberOfBytes);
24
+ const key = this.keys.require(command.input.KeyId);
25
+ this.authorizer.authorizeKey("kms:GenerateDataKey", key, options?.caller);
26
+ const dataKey = Uint8Array.from(randomBytes(length));
27
+ return {
28
+ $metadata: {},
29
+ Plaintext: dataKey,
30
+ CiphertextBlob: key.encrypt(dataKey, command.input.EncryptionContext),
31
+ KeyId: key.arn,
32
+ };
33
+ }
34
+ }
35
+ //# sourceMappingURL=sim-kms-generate-data-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-kms-generate-data-key.js","sourceRoot":"","sources":["../../../../../src/service/kms/command/crypto/sim-kms-generate-data-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAQ1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAW/D;;;;;;;GAOG;AACH,MAAM,OAAO,qBAAqB;IACf,IAAI,CAAiB;IACrB,UAAU,CAAmB;IAC7B,WAAW,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAEvD,YAAY,UAA2C;QACrD,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,MAAM,CACJ,OAAkC,EAClC,OAAsC;QAEtC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CACvC,OAAO,CAAC,KAAK,CAAC,OAAO,EACrB,OAAO,CAAC,KAAK,CAAC,aAAa,CAC5B,CAAC;QACF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEnD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,qBAAqB,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAE1E,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QAErD,OAAO;YACL,SAAS,EAAE,EAAE;YACb,SAAS,EAAE,OAAO;YAClB,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC;YACrE,KAAK,EAAE,GAAG,CAAC,GAAG;SACf,CAAC;IACJ,CAAC;CACF"}