authing_ruby 1.0.6

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 (505) hide show
  1. checksums.yaml +7 -0
  2. data/authing_ruby.gemspec +30 -0
  3. data/lib/authing_ruby/GraphQLAPI.rb +151 -0
  4. data/lib/authing_ruby/authentication/AuthenticationClient.rb +801 -0
  5. data/lib/authing_ruby/authentication/AuthenticationTokenProvider.rb +42 -0
  6. data/lib/authing_ruby/authentication/BaseAuthenticationClient.rb +28 -0
  7. data/lib/authing_ruby/common/GraphqlClient.rb +39 -0
  8. data/lib/authing_ruby/common/HttpClient.rb +247 -0
  9. data/lib/authing_ruby/common/PublicKeyManager.rb +42 -0
  10. data/lib/authing_ruby/graphql/mutations/bindPhone.gql +53 -0
  11. data/lib/authing_ruby/graphql/mutations/createUser.gql +54 -0
  12. data/lib/authing_ruby/graphql/mutations/deleteUser.gql +6 -0
  13. data/lib/authing_ruby/graphql/mutations/deleteUsers.gql +6 -0
  14. data/lib/authing_ruby/graphql/mutations/loginByEmail.gql +54 -0
  15. data/lib/authing_ruby/graphql/mutations/loginByPhoneCode.gql +54 -0
  16. data/lib/authing_ruby/graphql/mutations/loginByPhonePassword.gql +54 -0
  17. data/lib/authing_ruby/graphql/mutations/loginByUsername.gql +54 -0
  18. data/lib/authing_ruby/graphql/mutations/refreshAccessToken.gql +7 -0
  19. data/lib/authing_ruby/graphql/mutations/registerByEmail.gql +54 -0
  20. data/lib/authing_ruby/graphql/mutations/registerByPhoneCode.gql +54 -0
  21. data/lib/authing_ruby/graphql/mutations/registerByUsername.gql +54 -0
  22. data/lib/authing_ruby/graphql/mutations/resetPassword.gql +6 -0
  23. data/lib/authing_ruby/graphql/mutations/sendEmail.gql +6 -0
  24. data/lib/authing_ruby/graphql/mutations/updatePassword.gql +53 -0
  25. data/lib/authing_ruby/graphql/mutations/updateUser.gql +54 -0
  26. data/lib/authing_ruby/graphql/queries/accessToken.gql +7 -0
  27. data/lib/authing_ruby/graphql/queries/checkLoginStatus.gql +14 -0
  28. data/lib/authing_ruby/graphql/queries/checkPasswordStrength.gql +6 -0
  29. data/lib/authing_ruby/graphql/queries/findUser.gql +64 -0
  30. data/lib/authing_ruby/graphql/queries/isUserExists.gql +13 -0
  31. data/lib/authing_ruby/graphql/queries/user.gql +63 -0
  32. data/lib/authing_ruby/graphql/queries/users.gql +57 -0
  33. data/lib/authing_ruby/management/AclManagementClient.rb +47 -0
  34. data/lib/authing_ruby/management/ApplicationsManagementClient.rb +79 -0
  35. data/lib/authing_ruby/management/ManagementClient.rb +66 -0
  36. data/lib/authing_ruby/management/ManagementTokenProvider.rb +92 -0
  37. data/lib/authing_ruby/management/RolesManagementClient.rb +38 -0
  38. data/lib/authing_ruby/management/UserpoolManagementClient.rb +15 -0
  39. data/lib/authing_ruby/management/UsersManagementClient.rb +161 -0
  40. data/lib/authing_ruby/management/WhitelistManagementClient.rb +1 -0
  41. data/lib/authing_ruby/test/RSA.rb +18 -0
  42. data/lib/authing_ruby/test/helper.rb +15 -0
  43. data/lib/authing_ruby/test/js_sdk_test/1.buildAuthorizeUrl.js +43 -0
  44. data/lib/authing_ruby/test/js_sdk_test/2.buildAuthorizeUrl_PKCE.js +47 -0
  45. data/lib/authing_ruby/test/js_sdk_test/README.md +5 -0
  46. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/CONTRIBUTION.md +23 -0
  47. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/LICENSE +21 -0
  48. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/README.md +303 -0
  49. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/browser/index.min.js +2 -0
  50. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/browser/index.min.js.LICENSE.txt +91 -0
  51. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/index.d.ts +7 -0
  52. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/index.js +20 -0
  53. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/authentication/AuthenticationClient.d.ts +1078 -0
  54. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/authentication/AuthenticationClient.js +2801 -0
  55. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/authentication/AuthenticationTokenProvider.d.ts +13 -0
  56. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/authentication/AuthenticationTokenProvider.js +56 -0
  57. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/authentication/BaseAuthenticationClient.d.ts +6 -0
  58. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/authentication/BaseAuthenticationClient.js +31 -0
  59. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/authentication/EnterpriseAuthenticationClient.d.ts +92 -0
  60. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/authentication/EnterpriseAuthenticationClient.js +250 -0
  61. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/authentication/MfaAuthenticationClient.d.ts +303 -0
  62. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/authentication/MfaAuthenticationClient.js +665 -0
  63. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/authentication/QrCodeAuthenticationClient.d.ts +232 -0
  64. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/authentication/QrCodeAuthenticationClient.js +619 -0
  65. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/authentication/SocialAuthenticationClient.d.ts +100 -0
  66. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/authentication/SocialAuthenticationClient.js +179 -0
  67. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/authentication/types.d.ts +331 -0
  68. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/authentication/types.js +69 -0
  69. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/common/GraphqlClient.d.ts +14 -0
  70. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/common/GraphqlClient.js +125 -0
  71. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/common/HttpClient.d.ts +19 -0
  72. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/common/HttpClient.js +149 -0
  73. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/common/PublicKeyManager.d.ts +18 -0
  74. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/common/PublicKeyManager.js +81 -0
  75. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/graphqlapi.d.ts +110 -0
  76. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/graphqlapi.js +1812 -0
  77. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/AclManagementClient.d.ts +236 -0
  78. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/AclManagementClient.js +863 -0
  79. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/AgreementManagementClient.d.ts +65 -0
  80. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/AgreementManagementClient.js +195 -0
  81. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/ApplicationsManagementClient.d.ts +216 -0
  82. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/ApplicationsManagementClient.js +531 -0
  83. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/GroupsManagementClient.d.ts +184 -0
  84. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/GroupsManagementClient.js +386 -0
  85. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/MFAManagementClient.d.ts +58 -0
  86. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/MFAManagementClient.js +126 -0
  87. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/ManagementClient.d.ts +74 -0
  88. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/ManagementClient.js +190 -0
  89. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/ManagementTokenProvider.d.ts +39 -0
  90. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/ManagementTokenProvider.js +159 -0
  91. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/OrgManagementClient.d.ts +488 -0
  92. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/OrgManagementClient.js +772 -0
  93. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/PoliciesManagementClient.d.ts +304 -0
  94. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/PoliciesManagementClient.js +512 -0
  95. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/RolesManagementClient.d.ts +291 -0
  96. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/RolesManagementClient.js +676 -0
  97. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/StatisticsManagementClient.d.ts +56 -0
  98. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/StatisticsManagementClient.js +198 -0
  99. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/UdfManagementClient.d.ts +146 -0
  100. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/UdfManagementClient.js +264 -0
  101. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/UserActionManagementClient.d.ts +44 -0
  102. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/UserActionManagementClient.js +106 -0
  103. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/UserpoolManagementClient.d.ts +142 -0
  104. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/UserpoolManagementClient.js +241 -0
  105. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/UsersManagementClient.d.ts +753 -0
  106. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/UsersManagementClient.js +1114 -0
  107. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/WhitelistManagementClient.d.ts +114 -0
  108. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/WhitelistManagementClient.js +259 -0
  109. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/types.d.ts +982 -0
  110. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/types.js +96 -0
  111. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/platform/express/index.d.ts +30 -0
  112. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/platform/express/index.js +126 -0
  113. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/testing-helper.d.ts +31 -0
  114. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/testing-helper.js +67 -0
  115. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/utils.d.ts +53 -0
  116. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/utils.js +343 -0
  117. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/version.d.ts +1 -0
  118. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/version.js +5 -0
  119. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/types/graphql.v2.d.ts +5612 -0
  120. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/types/graphql.v2.js +240 -0
  121. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/types/index.d.ts +7 -0
  122. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/types/index.js +3 -0
  123. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/index.d.ts +7 -0
  124. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/index.js +8 -0
  125. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/authentication/AuthenticationClient.d.ts +1078 -0
  126. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/authentication/AuthenticationClient.js +2795 -0
  127. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/authentication/AuthenticationTokenProvider.d.ts +13 -0
  128. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/authentication/AuthenticationTokenProvider.js +53 -0
  129. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/authentication/BaseAuthenticationClient.d.ts +6 -0
  130. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/authentication/BaseAuthenticationClient.js +28 -0
  131. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/authentication/EnterpriseAuthenticationClient.d.ts +92 -0
  132. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/authentication/EnterpriseAuthenticationClient.js +247 -0
  133. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/authentication/MfaAuthenticationClient.d.ts +303 -0
  134. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/authentication/MfaAuthenticationClient.js +662 -0
  135. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/authentication/QrCodeAuthenticationClient.d.ts +232 -0
  136. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/authentication/QrCodeAuthenticationClient.js +616 -0
  137. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/authentication/SocialAuthenticationClient.d.ts +100 -0
  138. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/authentication/SocialAuthenticationClient.js +176 -0
  139. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/authentication/types.d.ts +331 -0
  140. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/authentication/types.js +66 -0
  141. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/common/GraphqlClient.d.ts +14 -0
  142. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/common/GraphqlClient.js +119 -0
  143. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/common/HttpClient.d.ts +19 -0
  144. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/common/HttpClient.js +143 -0
  145. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/common/PublicKeyManager.d.ts +18 -0
  146. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/common/PublicKeyManager.js +78 -0
  147. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/graphqlapi.d.ts +110 -0
  148. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/graphqlapi.js +1809 -0
  149. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/AclManagementClient.d.ts +236 -0
  150. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/AclManagementClient.js +860 -0
  151. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/AgreementManagementClient.d.ts +65 -0
  152. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/AgreementManagementClient.js +192 -0
  153. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/ApplicationsManagementClient.d.ts +216 -0
  154. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/ApplicationsManagementClient.js +528 -0
  155. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/GroupsManagementClient.d.ts +184 -0
  156. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/GroupsManagementClient.js +383 -0
  157. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/MFAManagementClient.d.ts +58 -0
  158. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/MFAManagementClient.js +123 -0
  159. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/ManagementClient.d.ts +74 -0
  160. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/ManagementClient.js +184 -0
  161. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/ManagementTokenProvider.d.ts +39 -0
  162. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/ManagementTokenProvider.js +153 -0
  163. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/OrgManagementClient.d.ts +488 -0
  164. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/OrgManagementClient.js +750 -0
  165. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/PoliciesManagementClient.d.ts +304 -0
  166. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/PoliciesManagementClient.js +509 -0
  167. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/RolesManagementClient.d.ts +291 -0
  168. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/RolesManagementClient.js +673 -0
  169. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/StatisticsManagementClient.d.ts +56 -0
  170. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/StatisticsManagementClient.js +195 -0
  171. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/UdfManagementClient.d.ts +146 -0
  172. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/UdfManagementClient.js +261 -0
  173. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/UserActionManagementClient.d.ts +44 -0
  174. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/UserActionManagementClient.js +103 -0
  175. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/UserpoolManagementClient.d.ts +142 -0
  176. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/UserpoolManagementClient.js +238 -0
  177. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/UsersManagementClient.d.ts +753 -0
  178. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/UsersManagementClient.js +1111 -0
  179. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/WhitelistManagementClient.d.ts +114 -0
  180. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/WhitelistManagementClient.js +256 -0
  181. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/types.d.ts +982 -0
  182. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/types.js +93 -0
  183. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/platform/express/index.d.ts +30 -0
  184. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/platform/express/index.js +123 -0
  185. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/testing-helper.d.ts +31 -0
  186. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/testing-helper.js +62 -0
  187. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/utils.d.ts +53 -0
  188. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/utils.js +336 -0
  189. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/version.d.ts +1 -0
  190. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/version.js +2 -0
  191. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/types/graphql.v2.d.ts +5612 -0
  192. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/types/graphql.v2.js +237 -0
  193. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/types/index.d.ts +7 -0
  194. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/types/index.js +1 -0
  195. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/index.d.ts +7 -0
  196. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/index.js +30 -0
  197. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/authentication/AuthenticationClient.d.ts +1078 -0
  198. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/authentication/AuthenticationClient.js +2811 -0
  199. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/authentication/AuthenticationTokenProvider.d.ts +13 -0
  200. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/authentication/AuthenticationTokenProvider.js +66 -0
  201. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/authentication/BaseAuthenticationClient.d.ts +6 -0
  202. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/authentication/BaseAuthenticationClient.js +41 -0
  203. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/authentication/EnterpriseAuthenticationClient.d.ts +92 -0
  204. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/authentication/EnterpriseAuthenticationClient.js +260 -0
  205. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/authentication/MfaAuthenticationClient.d.ts +303 -0
  206. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/authentication/MfaAuthenticationClient.js +675 -0
  207. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/authentication/QrCodeAuthenticationClient.d.ts +232 -0
  208. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/authentication/QrCodeAuthenticationClient.js +629 -0
  209. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/authentication/SocialAuthenticationClient.d.ts +100 -0
  210. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/authentication/SocialAuthenticationClient.js +189 -0
  211. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/authentication/types.d.ts +331 -0
  212. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/authentication/types.js +79 -0
  213. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/common/GraphqlClient.d.ts +14 -0
  214. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/common/GraphqlClient.js +135 -0
  215. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/common/HttpClient.d.ts +19 -0
  216. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/common/HttpClient.js +159 -0
  217. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/common/PublicKeyManager.d.ts +18 -0
  218. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/common/PublicKeyManager.js +91 -0
  219. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/graphqlapi.d.ts +110 -0
  220. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/graphqlapi.js +1822 -0
  221. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/AclManagementClient.d.ts +236 -0
  222. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/AclManagementClient.js +873 -0
  223. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/AgreementManagementClient.d.ts +65 -0
  224. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/AgreementManagementClient.js +205 -0
  225. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/ApplicationsManagementClient.d.ts +216 -0
  226. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/ApplicationsManagementClient.js +541 -0
  227. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/GroupsManagementClient.d.ts +184 -0
  228. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/GroupsManagementClient.js +396 -0
  229. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/MFAManagementClient.d.ts +58 -0
  230. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/MFAManagementClient.js +136 -0
  231. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/ManagementClient.d.ts +74 -0
  232. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/ManagementClient.js +200 -0
  233. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/ManagementTokenProvider.d.ts +39 -0
  234. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/ManagementTokenProvider.js +169 -0
  235. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/OrgManagementClient.d.ts +488 -0
  236. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/OrgManagementClient.js +782 -0
  237. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/PoliciesManagementClient.d.ts +304 -0
  238. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/PoliciesManagementClient.js +522 -0
  239. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/RolesManagementClient.d.ts +291 -0
  240. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/RolesManagementClient.js +686 -0
  241. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/StatisticsManagementClient.d.ts +56 -0
  242. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/StatisticsManagementClient.js +208 -0
  243. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/UdfManagementClient.d.ts +146 -0
  244. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/UdfManagementClient.js +274 -0
  245. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/UserActionManagementClient.d.ts +44 -0
  246. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/UserActionManagementClient.js +116 -0
  247. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/UserpoolManagementClient.d.ts +142 -0
  248. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/UserpoolManagementClient.js +251 -0
  249. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/UsersManagementClient.d.ts +753 -0
  250. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/UsersManagementClient.js +1124 -0
  251. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/WhitelistManagementClient.d.ts +114 -0
  252. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/WhitelistManagementClient.js +269 -0
  253. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/types.d.ts +982 -0
  254. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/types.js +106 -0
  255. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/platform/express/index.d.ts +30 -0
  256. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/platform/express/index.js +136 -0
  257. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/testing-helper.d.ts +31 -0
  258. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/testing-helper.js +77 -0
  259. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/utils.d.ts +53 -0
  260. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/utils.js +353 -0
  261. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/version.d.ts +1 -0
  262. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/version.js +15 -0
  263. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/types/graphql.v2.d.ts +5612 -0
  264. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/types/graphql.v2.js +250 -0
  265. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/types/index.d.ts +7 -0
  266. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/types/index.js +13 -0
  267. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build-doc.js +520 -0
  268. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/CHANGELOG.md +413 -0
  269. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/LICENSE +19 -0
  270. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/README.md +709 -0
  271. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/UPGRADE_GUIDE.md +162 -0
  272. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/dist/axios.js +1715 -0
  273. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/dist/axios.map +1 -0
  274. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/dist/axios.min.js +3 -0
  275. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/dist/axios.min.map +1 -0
  276. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/index.d.ts +157 -0
  277. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/index.js +1 -0
  278. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/lib/adapters/README.md +37 -0
  279. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/lib/adapters/http.js +279 -0
  280. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/lib/adapters/xhr.js +180 -0
  281. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/lib/axios.js +53 -0
  282. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/lib/cancel/Cancel.js +19 -0
  283. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/lib/cancel/CancelToken.js +57 -0
  284. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/lib/cancel/isCancel.js +5 -0
  285. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/lib/core/Axios.js +94 -0
  286. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/lib/core/InterceptorManager.js +52 -0
  287. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/lib/core/README.md +7 -0
  288. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/lib/core/buildFullPath.js +20 -0
  289. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/lib/core/createError.js +18 -0
  290. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/lib/core/dispatchRequest.js +79 -0
  291. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/lib/core/enhanceError.js +42 -0
  292. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/lib/core/mergeConfig.js +73 -0
  293. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/lib/core/settle.js +25 -0
  294. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/lib/core/transformData.js +20 -0
  295. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/lib/defaults.js +97 -0
  296. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/lib/helpers/README.md +7 -0
  297. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/lib/helpers/bind.js +11 -0
  298. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/lib/helpers/buildURL.js +71 -0
  299. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/lib/helpers/combineURLs.js +14 -0
  300. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/lib/helpers/cookies.js +53 -0
  301. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/lib/helpers/deprecatedMethod.js +24 -0
  302. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/lib/helpers/isAbsoluteURL.js +14 -0
  303. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/lib/helpers/isURLSameOrigin.js +68 -0
  304. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/lib/helpers/normalizeHeaderName.js +12 -0
  305. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/lib/helpers/parseHeaders.js +53 -0
  306. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/lib/helpers/spread.js +27 -0
  307. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/lib/utils.js +344 -0
  308. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/axios/package.json +84 -0
  309. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/follow-redirects/LICENSE +18 -0
  310. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/follow-redirects/README.md +155 -0
  311. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/follow-redirects/http.js +1 -0
  312. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/follow-redirects/https.js +1 -0
  313. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/follow-redirects/index.js +322 -0
  314. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/node_modules/follow-redirects/package.json +60 -0
  315. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/package.json +129 -0
  316. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/tests/index.html +21 -0
  317. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/tsconfig.brower.json +45 -0
  318. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/tsconfig.node.json +0 -0
  319. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/webpack.config.js +41 -0
  320. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/CHANGELOG.md +685 -0
  321. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/LICENSE +19 -0
  322. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/README.md +800 -0
  323. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/UPGRADE_GUIDE.md +162 -0
  324. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/dist/axios.js +1756 -0
  325. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/dist/axios.map +1 -0
  326. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/dist/axios.min.js +3 -0
  327. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/dist/axios.min.map +1 -0
  328. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/index.d.ts +161 -0
  329. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/index.js +1 -0
  330. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/adapters/README.md +37 -0
  331. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/adapters/http.js +303 -0
  332. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/adapters/xhr.js +179 -0
  333. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/axios.js +56 -0
  334. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/cancel/Cancel.js +19 -0
  335. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/cancel/CancelToken.js +57 -0
  336. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/cancel/isCancel.js +5 -0
  337. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/core/Axios.js +95 -0
  338. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/core/InterceptorManager.js +52 -0
  339. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/core/README.md +7 -0
  340. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/core/buildFullPath.js +20 -0
  341. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/core/createError.js +18 -0
  342. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/core/dispatchRequest.js +79 -0
  343. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/core/enhanceError.js +42 -0
  344. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/core/mergeConfig.js +87 -0
  345. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/core/settle.js +25 -0
  346. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/core/transformData.js +20 -0
  347. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/defaults.js +98 -0
  348. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/helpers/README.md +7 -0
  349. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/helpers/bind.js +11 -0
  350. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/helpers/buildURL.js +70 -0
  351. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/helpers/combineURLs.js +14 -0
  352. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/helpers/cookies.js +53 -0
  353. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/helpers/deprecatedMethod.js +24 -0
  354. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/helpers/isAbsoluteURL.js +14 -0
  355. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/helpers/isAxiosError.js +11 -0
  356. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/helpers/isURLSameOrigin.js +68 -0
  357. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/helpers/normalizeHeaderName.js +12 -0
  358. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/helpers/parseHeaders.js +53 -0
  359. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/helpers/spread.js +27 -0
  360. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/lib/utils.js +351 -0
  361. data/lib/authing_ruby/test/js_sdk_test/node_modules/axios/package.json +86 -0
  362. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/CONTRIBUTING.md +28 -0
  363. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/LICENSE +24 -0
  364. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/README.md +249 -0
  365. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/aes.js +234 -0
  366. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/bower.json +35 -0
  367. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/cipher-core.js +890 -0
  368. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/core.js +797 -0
  369. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/crypto-js.js +6059 -0
  370. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/docs/QuickStartGuide.wiki +470 -0
  371. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/enc-base64.js +136 -0
  372. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/enc-hex.js +18 -0
  373. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/enc-latin1.js +18 -0
  374. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/enc-utf16.js +149 -0
  375. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/enc-utf8.js +18 -0
  376. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/evpkdf.js +134 -0
  377. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/format-hex.js +66 -0
  378. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/format-openssl.js +18 -0
  379. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/hmac-md5.js +18 -0
  380. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/hmac-ripemd160.js +18 -0
  381. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/hmac-sha1.js +18 -0
  382. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/hmac-sha224.js +18 -0
  383. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/hmac-sha256.js +18 -0
  384. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/hmac-sha3.js +18 -0
  385. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/hmac-sha384.js +18 -0
  386. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/hmac-sha512.js +18 -0
  387. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/hmac.js +143 -0
  388. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/index.js +18 -0
  389. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/lib-typedarrays.js +76 -0
  390. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/md5.js +268 -0
  391. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/mode-cfb.js +80 -0
  392. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/mode-ctr-gladman.js +116 -0
  393. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/mode-ctr.js +58 -0
  394. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/mode-ecb.js +40 -0
  395. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/mode-ofb.js +54 -0
  396. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/package.json +38 -0
  397. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/pad-ansix923.js +49 -0
  398. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/pad-iso10126.js +44 -0
  399. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/pad-iso97971.js +40 -0
  400. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/pad-nopadding.js +30 -0
  401. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/pad-pkcs7.js +18 -0
  402. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/pad-zeropadding.js +47 -0
  403. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/pbkdf2.js +145 -0
  404. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/rabbit-legacy.js +190 -0
  405. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/rabbit.js +192 -0
  406. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/rc4.js +139 -0
  407. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/ripemd160.js +267 -0
  408. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/sha1.js +150 -0
  409. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/sha224.js +80 -0
  410. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/sha256.js +199 -0
  411. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/sha3.js +326 -0
  412. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/sha384.js +83 -0
  413. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/sha512.js +326 -0
  414. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/tripledes.js +779 -0
  415. data/lib/authing_ruby/test/js_sdk_test/node_modules/crypto-js/x64-core.js +304 -0
  416. data/lib/authing_ruby/test/js_sdk_test/node_modules/debug/CHANGELOG.md +395 -0
  417. data/lib/authing_ruby/test/js_sdk_test/node_modules/debug/LICENSE +19 -0
  418. data/lib/authing_ruby/test/js_sdk_test/node_modules/debug/Makefile +58 -0
  419. data/lib/authing_ruby/test/js_sdk_test/node_modules/debug/README.md +368 -0
  420. data/lib/authing_ruby/test/js_sdk_test/node_modules/debug/karma.conf.js +70 -0
  421. data/lib/authing_ruby/test/js_sdk_test/node_modules/debug/node.js +1 -0
  422. data/lib/authing_ruby/test/js_sdk_test/node_modules/debug/package.json +43 -0
  423. data/lib/authing_ruby/test/js_sdk_test/node_modules/debug/src/browser.js +195 -0
  424. data/lib/authing_ruby/test/js_sdk_test/node_modules/debug/src/debug.js +225 -0
  425. data/lib/authing_ruby/test/js_sdk_test/node_modules/debug/src/index.js +10 -0
  426. data/lib/authing_ruby/test/js_sdk_test/node_modules/debug/src/node.js +186 -0
  427. data/lib/authing_ruby/test/js_sdk_test/node_modules/follow-redirects/LICENSE +18 -0
  428. data/lib/authing_ruby/test/js_sdk_test/node_modules/follow-redirects/README.md +148 -0
  429. data/lib/authing_ruby/test/js_sdk_test/node_modules/follow-redirects/debug.js +14 -0
  430. data/lib/authing_ruby/test/js_sdk_test/node_modules/follow-redirects/http.js +1 -0
  431. data/lib/authing_ruby/test/js_sdk_test/node_modules/follow-redirects/https.js +1 -0
  432. data/lib/authing_ruby/test/js_sdk_test/node_modules/follow-redirects/index.js +535 -0
  433. data/lib/authing_ruby/test/js_sdk_test/node_modules/follow-redirects/package.json +59 -0
  434. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/LICENSE.txt +107 -0
  435. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/README.md +192 -0
  436. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/bin/jsencrypt.js +249 -0
  437. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/bin/jsencrypt.min.js +2 -0
  438. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/bin/jsencrypt.min.js.LICENSE.txt +8 -0
  439. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/JSEncrypt.d.ts +116 -0
  440. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/JSEncrypt.js +186 -0
  441. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/JSEncryptRSAKey.d.ts +142 -0
  442. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/JSEncryptRSAKey.js +315 -0
  443. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/index.d.ts +3 -0
  444. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/index.js +3 -0
  445. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/lib/asn1js/asn1.d.ts +51 -0
  446. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/lib/asn1js/asn1.js +565 -0
  447. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/lib/asn1js/base64.d.ts +5 -0
  448. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/lib/asn1js/base64.js +88 -0
  449. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/lib/asn1js/hex.d.ts +3 -0
  450. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/lib/asn1js/hex.js +64 -0
  451. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/lib/asn1js/int10.d.ts +9 -0
  452. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/lib/asn1js/int10.js +87 -0
  453. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/lib/asn1js/oids.d.ts +9778 -0
  454. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/lib/asn1js/oids.js +1962 -0
  455. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/lib/jsbn/base64.d.ts +3 -0
  456. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/lib/jsbn/base64.js +76 -0
  457. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/lib/jsbn/jsbn.d.ts +98 -0
  458. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/lib/jsbn/jsbn.js +1754 -0
  459. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/lib/jsbn/prng4.d.ts +10 -0
  460. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/lib/jsbn/prng4.js +46 -0
  461. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/lib/jsbn/rng.d.ts +3 -0
  462. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/lib/jsbn/rng.js +76 -0
  463. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/lib/jsbn/rsa.d.ts +23 -0
  464. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/lib/jsbn/rsa.js +373 -0
  465. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/lib/jsbn/util.d.ts +7 -0
  466. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/lib/jsbn/util.js +58 -0
  467. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/lib/jsrsasign/asn1-1.0.js +1593 -0
  468. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/lib/jsrsasign/yahoo.js +69 -0
  469. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/lib/version.json +1 -0
  470. data/lib/authing_ruby/test/js_sdk_test/node_modules/jsencrypt/package.json +49 -0
  471. data/lib/authing_ruby/test/js_sdk_test/node_modules/jwt-decode/Gruntfile.js +78 -0
  472. data/lib/authing_ruby/test/js_sdk_test/node_modules/jwt-decode/LICENSE +21 -0
  473. data/lib/authing_ruby/test/js_sdk_test/node_modules/jwt-decode/README.md +55 -0
  474. data/lib/authing_ruby/test/js_sdk_test/node_modules/jwt-decode/bower.json +20 -0
  475. data/lib/authing_ruby/test/js_sdk_test/node_modules/jwt-decode/build/jwt-decode.js +125 -0
  476. data/lib/authing_ruby/test/js_sdk_test/node_modules/jwt-decode/build/jwt-decode.min.js +1 -0
  477. data/lib/authing_ruby/test/js_sdk_test/node_modules/jwt-decode/jwt-decode.html +2 -0
  478. data/lib/authing_ruby/test/js_sdk_test/node_modules/jwt-decode/lib/atob.js +38 -0
  479. data/lib/authing_ruby/test/js_sdk_test/node_modules/jwt-decode/lib/base64_url_decode.js +33 -0
  480. data/lib/authing_ruby/test/js_sdk_test/node_modules/jwt-decode/lib/index.js +26 -0
  481. data/lib/authing_ruby/test/js_sdk_test/node_modules/jwt-decode/package.json +37 -0
  482. data/lib/authing_ruby/test/js_sdk_test/node_modules/jwt-decode/standalone.js +16 -0
  483. data/lib/authing_ruby/test/js_sdk_test/node_modules/jwt-decode/test/tests.js +53 -0
  484. data/lib/authing_ruby/test/js_sdk_test/node_modules/jwt-decode/test_harness.html +29 -0
  485. data/lib/authing_ruby/test/js_sdk_test/node_modules/jwt-decode/testem.yml +46 -0
  486. data/lib/authing_ruby/test/js_sdk_test/node_modules/jwt-decode/testem_dev.yml +1 -0
  487. data/lib/authing_ruby/test/js_sdk_test/node_modules/ms/index.js +152 -0
  488. data/lib/authing_ruby/test/js_sdk_test/node_modules/ms/license.md +21 -0
  489. data/lib/authing_ruby/test/js_sdk_test/node_modules/ms/package.json +37 -0
  490. data/lib/authing_ruby/test/js_sdk_test/node_modules/ms/readme.md +51 -0
  491. data/lib/authing_ruby/test/js_sdk_test/package-lock.json +177 -0
  492. data/lib/authing_ruby/test/js_sdk_test/package.json +15 -0
  493. data/lib/authing_ruby/test/mini_test/TestApplicationsManagementClient.rb +85 -0
  494. data/lib/authing_ruby/test/mini_test/TestAuthenticationClient.rb +232 -0
  495. data/lib/authing_ruby/test/mini_test/TestAuthenticationClientProtocal.rb +238 -0
  496. data/lib/authing_ruby/test/mini_test/TestHttpClient.rb +53 -0
  497. data/lib/authing_ruby/test/mini_test/TestManagementClient.rb +193 -0
  498. data/lib/authing_ruby/test/mini_test/TestManagementTokenProvider.rb +49 -0
  499. data/lib/authing_ruby/test/mini_test/TestNaiveHttpClient.rb +33 -0
  500. data/lib/authing_ruby/test/mini_test/TestSMSandEmail.rb +101 -0
  501. data/lib/authing_ruby/test/mini_test/TestUtils.rb +35 -0
  502. data/lib/authing_ruby/utils/utils.rb +40 -0
  503. data/lib/authing_ruby/version.rb +6 -0
  504. data/lib/authing_ruby.rb +14 -0
  505. metadata +694 -0
@@ -0,0 +1,1593 @@
1
+ /* asn1-1.0.13.js (c) 2013-2017 Kenji Urushima | kjur.github.com/jsrsasign/license
2
+ */
3
+ /*
4
+ * asn1.js - ASN.1 DER encoder classes
5
+ *
6
+ * Copyright (c) 2013-2017 Kenji Urushima (kenji.urushima@gmail.com)
7
+ *
8
+ * This software is licensed under the terms of the MIT License.
9
+ * https://kjur.github.io/jsrsasign/license
10
+ *
11
+ * The above copyright and license notice shall be
12
+ * included in all copies or substantial portions of the Software.
13
+ */
14
+ import { BigInteger } from "../jsbn/jsbn";
15
+ import { YAHOO } from "./yahoo";
16
+ /**
17
+ * @fileOverview
18
+ * @name asn1-1.0.js
19
+ * @author Kenji Urushima kenji.urushima@gmail.com
20
+ * @version asn1 1.0.13 (2017-Jun-02)
21
+ * @since jsrsasign 2.1
22
+ * @license <a href="https://kjur.github.io/jsrsasign/license/">MIT License</a>
23
+ */
24
+ /**
25
+ * kjur's class library name space
26
+ * <p>
27
+ * This name space provides following name spaces:
28
+ * <ul>
29
+ * <li>{@link KJUR.asn1} - ASN.1 primitive hexadecimal encoder</li>
30
+ * <li>{@link KJUR.asn1.x509} - ASN.1 structure for X.509 certificate and CRL</li>
31
+ * <li>{@link KJUR.crypto} - Java Cryptographic Extension(JCE) style MessageDigest/Signature
32
+ * class and utilities</li>
33
+ * </ul>
34
+ * </p>
35
+ * NOTE: Please ignore method summary and document of this namespace. This caused by a bug of jsdoc2.
36
+ * @name KJUR
37
+ * @namespace kjur's class library name space
38
+ */
39
+ export var KJUR = {};
40
+ /**
41
+ * kjur's ASN.1 class library name space
42
+ * <p>
43
+ * This is ITU-T X.690 ASN.1 DER encoder class library and
44
+ * class structure and methods is very similar to
45
+ * org.bouncycastle.asn1 package of
46
+ * well known BouncyCaslte Cryptography Library.
47
+ * <h4>PROVIDING ASN.1 PRIMITIVES</h4>
48
+ * Here are ASN.1 DER primitive classes.
49
+ * <ul>
50
+ * <li>0x01 {@link KJUR.asn1.DERBoolean}</li>
51
+ * <li>0x02 {@link KJUR.asn1.DERInteger}</li>
52
+ * <li>0x03 {@link KJUR.asn1.DERBitString}</li>
53
+ * <li>0x04 {@link KJUR.asn1.DEROctetString}</li>
54
+ * <li>0x05 {@link KJUR.asn1.DERNull}</li>
55
+ * <li>0x06 {@link KJUR.asn1.DERObjectIdentifier}</li>
56
+ * <li>0x0a {@link KJUR.asn1.DEREnumerated}</li>
57
+ * <li>0x0c {@link KJUR.asn1.DERUTF8String}</li>
58
+ * <li>0x12 {@link KJUR.asn1.DERNumericString}</li>
59
+ * <li>0x13 {@link KJUR.asn1.DERPrintableString}</li>
60
+ * <li>0x14 {@link KJUR.asn1.DERTeletexString}</li>
61
+ * <li>0x16 {@link KJUR.asn1.DERIA5String}</li>
62
+ * <li>0x17 {@link KJUR.asn1.DERUTCTime}</li>
63
+ * <li>0x18 {@link KJUR.asn1.DERGeneralizedTime}</li>
64
+ * <li>0x30 {@link KJUR.asn1.DERSequence}</li>
65
+ * <li>0x31 {@link KJUR.asn1.DERSet}</li>
66
+ * </ul>
67
+ * <h4>OTHER ASN.1 CLASSES</h4>
68
+ * <ul>
69
+ * <li>{@link KJUR.asn1.ASN1Object}</li>
70
+ * <li>{@link KJUR.asn1.DERAbstractString}</li>
71
+ * <li>{@link KJUR.asn1.DERAbstractTime}</li>
72
+ * <li>{@link KJUR.asn1.DERAbstractStructured}</li>
73
+ * <li>{@link KJUR.asn1.DERTaggedObject}</li>
74
+ * </ul>
75
+ * <h4>SUB NAME SPACES</h4>
76
+ * <ul>
77
+ * <li>{@link KJUR.asn1.cades} - CAdES long term signature format</li>
78
+ * <li>{@link KJUR.asn1.cms} - Cryptographic Message Syntax</li>
79
+ * <li>{@link KJUR.asn1.csr} - Certificate Signing Request (CSR/PKCS#10)</li>
80
+ * <li>{@link KJUR.asn1.tsp} - RFC 3161 Timestamping Protocol Format</li>
81
+ * <li>{@link KJUR.asn1.x509} - RFC 5280 X.509 certificate and CRL</li>
82
+ * </ul>
83
+ * </p>
84
+ * NOTE: Please ignore method summary and document of this namespace.
85
+ * This caused by a bug of jsdoc2.
86
+ * @name KJUR.asn1
87
+ * @namespace
88
+ */
89
+ if (typeof KJUR.asn1 == "undefined" || !KJUR.asn1)
90
+ KJUR.asn1 = {};
91
+ /**
92
+ * ASN1 utilities class
93
+ * @name KJUR.asn1.ASN1Util
94
+ * @class ASN1 utilities class
95
+ * @since asn1 1.0.2
96
+ */
97
+ KJUR.asn1.ASN1Util = new function () {
98
+ this.integerToByteHex = function (i) {
99
+ var h = i.toString(16);
100
+ if ((h.length % 2) == 1)
101
+ h = '0' + h;
102
+ return h;
103
+ };
104
+ this.bigIntToMinTwosComplementsHex = function (bigIntegerValue) {
105
+ var h = bigIntegerValue.toString(16);
106
+ if (h.substr(0, 1) != '-') {
107
+ if (h.length % 2 == 1) {
108
+ h = '0' + h;
109
+ }
110
+ else {
111
+ if (!h.match(/^[0-7]/)) {
112
+ h = '00' + h;
113
+ }
114
+ }
115
+ }
116
+ else {
117
+ var hPos = h.substr(1);
118
+ var xorLen = hPos.length;
119
+ if (xorLen % 2 == 1) {
120
+ xorLen += 1;
121
+ }
122
+ else {
123
+ if (!h.match(/^[0-7]/)) {
124
+ xorLen += 2;
125
+ }
126
+ }
127
+ var hMask = '';
128
+ for (var i = 0; i < xorLen; i++) {
129
+ hMask += 'f';
130
+ }
131
+ var biMask = new BigInteger(hMask, 16);
132
+ var biNeg = biMask.xor(bigIntegerValue).add(BigInteger.ONE);
133
+ h = biNeg.toString(16).replace(/^-/, '');
134
+ }
135
+ return h;
136
+ };
137
+ /**
138
+ * get PEM string from hexadecimal data and header string
139
+ * @name getPEMStringFromHex
140
+ * @memberOf KJUR.asn1.ASN1Util
141
+ * @function
142
+ * @param {String} dataHex hexadecimal string of PEM body
143
+ * @param {String} pemHeader PEM header string (ex. 'RSA PRIVATE KEY')
144
+ * @return {String} PEM formatted string of input data
145
+ * @description
146
+ * This method converts a hexadecimal string to a PEM string with
147
+ * a specified header. Its line break will be CRLF("\r\n").
148
+ * @example
149
+ * var pem = KJUR.asn1.ASN1Util.getPEMStringFromHex('616161', 'RSA PRIVATE KEY');
150
+ * // value of pem will be:
151
+ * -----BEGIN PRIVATE KEY-----
152
+ * YWFh
153
+ * -----END PRIVATE KEY-----
154
+ */
155
+ this.getPEMStringFromHex = function (dataHex, pemHeader) {
156
+ return hextopem(dataHex, pemHeader);
157
+ };
158
+ /**
159
+ * generate ASN1Object specifed by JSON parameters
160
+ * @name newObject
161
+ * @memberOf KJUR.asn1.ASN1Util
162
+ * @function
163
+ * @param {Array} param JSON parameter to generate ASN1Object
164
+ * @return {KJUR.asn1.ASN1Object} generated object
165
+ * @since asn1 1.0.3
166
+ * @description
167
+ * generate any ASN1Object specified by JSON param
168
+ * including ASN.1 primitive or structured.
169
+ * Generally 'param' can be described as follows:
170
+ * <blockquote>
171
+ * {TYPE-OF-ASNOBJ: ASN1OBJ-PARAMETER}
172
+ * </blockquote>
173
+ * 'TYPE-OF-ASN1OBJ' can be one of following symbols:
174
+ * <ul>
175
+ * <li>'bool' - DERBoolean</li>
176
+ * <li>'int' - DERInteger</li>
177
+ * <li>'bitstr' - DERBitString</li>
178
+ * <li>'octstr' - DEROctetString</li>
179
+ * <li>'null' - DERNull</li>
180
+ * <li>'oid' - DERObjectIdentifier</li>
181
+ * <li>'enum' - DEREnumerated</li>
182
+ * <li>'utf8str' - DERUTF8String</li>
183
+ * <li>'numstr' - DERNumericString</li>
184
+ * <li>'prnstr' - DERPrintableString</li>
185
+ * <li>'telstr' - DERTeletexString</li>
186
+ * <li>'ia5str' - DERIA5String</li>
187
+ * <li>'utctime' - DERUTCTime</li>
188
+ * <li>'gentime' - DERGeneralizedTime</li>
189
+ * <li>'seq' - DERSequence</li>
190
+ * <li>'set' - DERSet</li>
191
+ * <li>'tag' - DERTaggedObject</li>
192
+ * </ul>
193
+ * @example
194
+ * newObject({'prnstr': 'aaa'});
195
+ * newObject({'seq': [{'int': 3}, {'prnstr': 'aaa'}]})
196
+ * // ASN.1 Tagged Object
197
+ * newObject({'tag': {'tag': 'a1',
198
+ * 'explicit': true,
199
+ * 'obj': {'seq': [{'int': 3}, {'prnstr': 'aaa'}]}}});
200
+ * // more simple representation of ASN.1 Tagged Object
201
+ * newObject({'tag': ['a1',
202
+ * true,
203
+ * {'seq': [
204
+ * {'int': 3},
205
+ * {'prnstr': 'aaa'}]}
206
+ * ]});
207
+ */
208
+ this.newObject = function (param) {
209
+ var _KJUR = KJUR, _KJUR_asn1 = _KJUR.asn1, _DERBoolean = _KJUR_asn1.DERBoolean, _DERInteger = _KJUR_asn1.DERInteger, _DERBitString = _KJUR_asn1.DERBitString, _DEROctetString = _KJUR_asn1.DEROctetString, _DERNull = _KJUR_asn1.DERNull, _DERObjectIdentifier = _KJUR_asn1.DERObjectIdentifier, _DEREnumerated = _KJUR_asn1.DEREnumerated, _DERUTF8String = _KJUR_asn1.DERUTF8String, _DERNumericString = _KJUR_asn1.DERNumericString, _DERPrintableString = _KJUR_asn1.DERPrintableString, _DERTeletexString = _KJUR_asn1.DERTeletexString, _DERIA5String = _KJUR_asn1.DERIA5String, _DERUTCTime = _KJUR_asn1.DERUTCTime, _DERGeneralizedTime = _KJUR_asn1.DERGeneralizedTime, _DERSequence = _KJUR_asn1.DERSequence, _DERSet = _KJUR_asn1.DERSet, _DERTaggedObject = _KJUR_asn1.DERTaggedObject, _newObject = _KJUR_asn1.ASN1Util.newObject;
210
+ var keys = Object.keys(param);
211
+ if (keys.length != 1)
212
+ throw "key of param shall be only one.";
213
+ var key = keys[0];
214
+ if (":bool:int:bitstr:octstr:null:oid:enum:utf8str:numstr:prnstr:telstr:ia5str:utctime:gentime:seq:set:tag:".indexOf(":" + key + ":") == -1)
215
+ throw "undefined key: " + key;
216
+ if (key == "bool")
217
+ return new _DERBoolean(param[key]);
218
+ if (key == "int")
219
+ return new _DERInteger(param[key]);
220
+ if (key == "bitstr")
221
+ return new _DERBitString(param[key]);
222
+ if (key == "octstr")
223
+ return new _DEROctetString(param[key]);
224
+ if (key == "null")
225
+ return new _DERNull(param[key]);
226
+ if (key == "oid")
227
+ return new _DERObjectIdentifier(param[key]);
228
+ if (key == "enum")
229
+ return new _DEREnumerated(param[key]);
230
+ if (key == "utf8str")
231
+ return new _DERUTF8String(param[key]);
232
+ if (key == "numstr")
233
+ return new _DERNumericString(param[key]);
234
+ if (key == "prnstr")
235
+ return new _DERPrintableString(param[key]);
236
+ if (key == "telstr")
237
+ return new _DERTeletexString(param[key]);
238
+ if (key == "ia5str")
239
+ return new _DERIA5String(param[key]);
240
+ if (key == "utctime")
241
+ return new _DERUTCTime(param[key]);
242
+ if (key == "gentime")
243
+ return new _DERGeneralizedTime(param[key]);
244
+ if (key == "seq") {
245
+ var paramList = param[key];
246
+ var a = [];
247
+ for (var i = 0; i < paramList.length; i++) {
248
+ var asn1Obj = _newObject(paramList[i]);
249
+ a.push(asn1Obj);
250
+ }
251
+ return new _DERSequence({ 'array': a });
252
+ }
253
+ if (key == "set") {
254
+ var paramList = param[key];
255
+ var a = [];
256
+ for (var i = 0; i < paramList.length; i++) {
257
+ var asn1Obj = _newObject(paramList[i]);
258
+ a.push(asn1Obj);
259
+ }
260
+ return new _DERSet({ 'array': a });
261
+ }
262
+ if (key == "tag") {
263
+ var tagParam = param[key];
264
+ if (Object.prototype.toString.call(tagParam) === '[object Array]' &&
265
+ tagParam.length == 3) {
266
+ var obj = _newObject(tagParam[2]);
267
+ return new _DERTaggedObject({ tag: tagParam[0],
268
+ explicit: tagParam[1],
269
+ obj: obj });
270
+ }
271
+ else {
272
+ var newParam = {};
273
+ if (tagParam.explicit !== undefined)
274
+ newParam.explicit = tagParam.explicit;
275
+ if (tagParam.tag !== undefined)
276
+ newParam.tag = tagParam.tag;
277
+ if (tagParam.obj === undefined)
278
+ throw "obj shall be specified for 'tag'.";
279
+ newParam.obj = _newObject(tagParam.obj);
280
+ return new _DERTaggedObject(newParam);
281
+ }
282
+ }
283
+ };
284
+ /**
285
+ * get encoded hexadecimal string of ASN1Object specifed by JSON parameters
286
+ * @name jsonToASN1HEX
287
+ * @memberOf KJUR.asn1.ASN1Util
288
+ * @function
289
+ * @param {Array} param JSON parameter to generate ASN1Object
290
+ * @return hexadecimal string of ASN1Object
291
+ * @since asn1 1.0.4
292
+ * @description
293
+ * As for ASN.1 object representation of JSON object,
294
+ * please see {@link newObject}.
295
+ * @example
296
+ * jsonToASN1HEX({'prnstr': 'aaa'});
297
+ */
298
+ this.jsonToASN1HEX = function (param) {
299
+ var asn1Obj = this.newObject(param);
300
+ return asn1Obj.getEncodedHex();
301
+ };
302
+ };
303
+ /**
304
+ * get dot noted oid number string from hexadecimal value of OID
305
+ * @name oidHexToInt
306
+ * @memberOf KJUR.asn1.ASN1Util
307
+ * @function
308
+ * @param {String} hex hexadecimal value of object identifier
309
+ * @return {String} dot noted string of object identifier
310
+ * @since jsrsasign 4.8.3 asn1 1.0.7
311
+ * @description
312
+ * This static method converts from hexadecimal string representation of
313
+ * ASN.1 value of object identifier to oid number string.
314
+ * @example
315
+ * KJUR.asn1.ASN1Util.oidHexToInt('550406') &rarr; "2.5.4.6"
316
+ */
317
+ KJUR.asn1.ASN1Util.oidHexToInt = function (hex) {
318
+ var s = "";
319
+ var i01 = parseInt(hex.substr(0, 2), 16);
320
+ var i0 = Math.floor(i01 / 40);
321
+ var i1 = i01 % 40;
322
+ var s = i0 + "." + i1;
323
+ var binbuf = "";
324
+ for (var i = 2; i < hex.length; i += 2) {
325
+ var value = parseInt(hex.substr(i, 2), 16);
326
+ var bin = ("00000000" + value.toString(2)).slice(-8);
327
+ binbuf = binbuf + bin.substr(1, 7);
328
+ if (bin.substr(0, 1) == "0") {
329
+ var bi = new BigInteger(binbuf, 2);
330
+ s = s + "." + bi.toString(10);
331
+ binbuf = "";
332
+ }
333
+ }
334
+ ;
335
+ return s;
336
+ };
337
+ /**
338
+ * get hexadecimal value of object identifier from dot noted oid value
339
+ * @name oidIntToHex
340
+ * @memberOf KJUR.asn1.ASN1Util
341
+ * @function
342
+ * @param {String} oidString dot noted string of object identifier
343
+ * @return {String} hexadecimal value of object identifier
344
+ * @since jsrsasign 4.8.3 asn1 1.0.7
345
+ * @description
346
+ * This static method converts from object identifier value string.
347
+ * to hexadecimal string representation of it.
348
+ * @example
349
+ * KJUR.asn1.ASN1Util.oidIntToHex("2.5.4.6") &rarr; "550406"
350
+ */
351
+ KJUR.asn1.ASN1Util.oidIntToHex = function (oidString) {
352
+ var itox = function (i) {
353
+ var h = i.toString(16);
354
+ if (h.length == 1)
355
+ h = '0' + h;
356
+ return h;
357
+ };
358
+ var roidtox = function (roid) {
359
+ var h = '';
360
+ var bi = new BigInteger(roid, 10);
361
+ var b = bi.toString(2);
362
+ var padLen = 7 - b.length % 7;
363
+ if (padLen == 7)
364
+ padLen = 0;
365
+ var bPad = '';
366
+ for (var i = 0; i < padLen; i++)
367
+ bPad += '0';
368
+ b = bPad + b;
369
+ for (var i = 0; i < b.length - 1; i += 7) {
370
+ var b8 = b.substr(i, 7);
371
+ if (i != b.length - 7)
372
+ b8 = '1' + b8;
373
+ h += itox(parseInt(b8, 2));
374
+ }
375
+ return h;
376
+ };
377
+ if (!oidString.match(/^[0-9.]+$/)) {
378
+ throw "malformed oid string: " + oidString;
379
+ }
380
+ var h = '';
381
+ var a = oidString.split('.');
382
+ var i0 = parseInt(a[0]) * 40 + parseInt(a[1]);
383
+ h += itox(i0);
384
+ a.splice(0, 2);
385
+ for (var i = 0; i < a.length; i++) {
386
+ h += roidtox(a[i]);
387
+ }
388
+ return h;
389
+ };
390
+ // ********************************************************************
391
+ // Abstract ASN.1 Classes
392
+ // ********************************************************************
393
+ // ********************************************************************
394
+ /**
395
+ * base class for ASN.1 DER encoder object
396
+ * @name KJUR.asn1.ASN1Object
397
+ * @class base class for ASN.1 DER encoder object
398
+ * @property {Boolean} isModified flag whether internal data was changed
399
+ * @property {String} hTLV hexadecimal string of ASN.1 TLV
400
+ * @property {String} hT hexadecimal string of ASN.1 TLV tag(T)
401
+ * @property {String} hL hexadecimal string of ASN.1 TLV length(L)
402
+ * @property {String} hV hexadecimal string of ASN.1 TLV value(V)
403
+ * @description
404
+ */
405
+ KJUR.asn1.ASN1Object = function () {
406
+ var isModified = true;
407
+ var hTLV = null;
408
+ var hT = '00';
409
+ var hL = '00';
410
+ var hV = '';
411
+ /**
412
+ * get hexadecimal ASN.1 TLV length(L) bytes from TLV value(V)
413
+ * @name getLengthHexFromValue
414
+ * @memberOf KJUR.asn1.ASN1Object#
415
+ * @function
416
+ * @return {String} hexadecimal string of ASN.1 TLV length(L)
417
+ */
418
+ this.getLengthHexFromValue = function () {
419
+ if (typeof this.hV == "undefined" || this.hV == null) {
420
+ throw "this.hV is null or undefined.";
421
+ }
422
+ if (this.hV.length % 2 == 1) {
423
+ throw "value hex must be even length: n=" + hV.length + ",v=" + this.hV;
424
+ }
425
+ var n = this.hV.length / 2;
426
+ var hN = n.toString(16);
427
+ if (hN.length % 2 == 1) {
428
+ hN = "0" + hN;
429
+ }
430
+ if (n < 128) {
431
+ return hN;
432
+ }
433
+ else {
434
+ var hNlen = hN.length / 2;
435
+ if (hNlen > 15) {
436
+ throw "ASN.1 length too long to represent by 8x: n = " + n.toString(16);
437
+ }
438
+ var head = 128 + hNlen;
439
+ return head.toString(16) + hN;
440
+ }
441
+ };
442
+ /**
443
+ * get hexadecimal string of ASN.1 TLV bytes
444
+ * @name getEncodedHex
445
+ * @memberOf KJUR.asn1.ASN1Object#
446
+ * @function
447
+ * @return {String} hexadecimal string of ASN.1 TLV
448
+ */
449
+ this.getEncodedHex = function () {
450
+ if (this.hTLV == null || this.isModified) {
451
+ this.hV = this.getFreshValueHex();
452
+ this.hL = this.getLengthHexFromValue();
453
+ this.hTLV = this.hT + this.hL + this.hV;
454
+ this.isModified = false;
455
+ //alert("first time: " + this.hTLV);
456
+ }
457
+ return this.hTLV;
458
+ };
459
+ /**
460
+ * get hexadecimal string of ASN.1 TLV value(V) bytes
461
+ * @name getValueHex
462
+ * @memberOf KJUR.asn1.ASN1Object#
463
+ * @function
464
+ * @return {String} hexadecimal string of ASN.1 TLV value(V) bytes
465
+ */
466
+ this.getValueHex = function () {
467
+ this.getEncodedHex();
468
+ return this.hV;
469
+ };
470
+ this.getFreshValueHex = function () {
471
+ return '';
472
+ };
473
+ };
474
+ // == BEGIN DERAbstractString ================================================
475
+ /**
476
+ * base class for ASN.1 DER string classes
477
+ * @name KJUR.asn1.DERAbstractString
478
+ * @class base class for ASN.1 DER string classes
479
+ * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})
480
+ * @property {String} s internal string of value
481
+ * @extends KJUR.asn1.ASN1Object
482
+ * @description
483
+ * <br/>
484
+ * As for argument 'params' for constructor, you can specify one of
485
+ * following properties:
486
+ * <ul>
487
+ * <li>str - specify initial ASN.1 value(V) by a string</li>
488
+ * <li>hex - specify initial ASN.1 value(V) by a hexadecimal string</li>
489
+ * </ul>
490
+ * NOTE: 'params' can be omitted.
491
+ */
492
+ KJUR.asn1.DERAbstractString = function (params) {
493
+ KJUR.asn1.DERAbstractString.superclass.constructor.call(this);
494
+ var s = null;
495
+ var hV = null;
496
+ /**
497
+ * get string value of this string object
498
+ * @name getString
499
+ * @memberOf KJUR.asn1.DERAbstractString#
500
+ * @function
501
+ * @return {String} string value of this string object
502
+ */
503
+ this.getString = function () {
504
+ return this.s;
505
+ };
506
+ /**
507
+ * set value by a string
508
+ * @name setString
509
+ * @memberOf KJUR.asn1.DERAbstractString#
510
+ * @function
511
+ * @param {String} newS value by a string to set
512
+ */
513
+ this.setString = function (newS) {
514
+ this.hTLV = null;
515
+ this.isModified = true;
516
+ this.s = newS;
517
+ this.hV = stohex(this.s);
518
+ };
519
+ /**
520
+ * set value by a hexadecimal string
521
+ * @name setStringHex
522
+ * @memberOf KJUR.asn1.DERAbstractString#
523
+ * @function
524
+ * @param {String} newHexString value by a hexadecimal string to set
525
+ */
526
+ this.setStringHex = function (newHexString) {
527
+ this.hTLV = null;
528
+ this.isModified = true;
529
+ this.s = null;
530
+ this.hV = newHexString;
531
+ };
532
+ this.getFreshValueHex = function () {
533
+ return this.hV;
534
+ };
535
+ if (typeof params != "undefined") {
536
+ if (typeof params == "string") {
537
+ this.setString(params);
538
+ }
539
+ else if (typeof params['str'] != "undefined") {
540
+ this.setString(params['str']);
541
+ }
542
+ else if (typeof params['hex'] != "undefined") {
543
+ this.setStringHex(params['hex']);
544
+ }
545
+ }
546
+ };
547
+ YAHOO.lang.extend(KJUR.asn1.DERAbstractString, KJUR.asn1.ASN1Object);
548
+ // == END DERAbstractString ================================================
549
+ // == BEGIN DERAbstractTime ==================================================
550
+ /**
551
+ * base class for ASN.1 DER Generalized/UTCTime class
552
+ * @name KJUR.asn1.DERAbstractTime
553
+ * @class base class for ASN.1 DER Generalized/UTCTime class
554
+ * @param {Array} params associative array of parameters (ex. {'str': '130430235959Z'})
555
+ * @extends KJUR.asn1.ASN1Object
556
+ * @description
557
+ * @see KJUR.asn1.ASN1Object - superclass
558
+ */
559
+ KJUR.asn1.DERAbstractTime = function (params) {
560
+ KJUR.asn1.DERAbstractTime.superclass.constructor.call(this);
561
+ var s = null;
562
+ var date = null;
563
+ // --- PRIVATE METHODS --------------------
564
+ this.localDateToUTC = function (d) {
565
+ utc = d.getTime() + (d.getTimezoneOffset() * 60000);
566
+ var utcDate = new Date(utc);
567
+ return utcDate;
568
+ };
569
+ /*
570
+ * format date string by Data object
571
+ * @name formatDate
572
+ * @memberOf KJUR.asn1.AbstractTime;
573
+ * @param {Date} dateObject
574
+ * @param {string} type 'utc' or 'gen'
575
+ * @param {boolean} withMillis flag for with millisections or not
576
+ * @description
577
+ * 'withMillis' flag is supported from asn1 1.0.6.
578
+ */
579
+ this.formatDate = function (dateObject, type, withMillis) {
580
+ var pad = this.zeroPadding;
581
+ var d = this.localDateToUTC(dateObject);
582
+ var year = String(d.getFullYear());
583
+ if (type == 'utc')
584
+ year = year.substr(2, 2);
585
+ var month = pad(String(d.getMonth() + 1), 2);
586
+ var day = pad(String(d.getDate()), 2);
587
+ var hour = pad(String(d.getHours()), 2);
588
+ var min = pad(String(d.getMinutes()), 2);
589
+ var sec = pad(String(d.getSeconds()), 2);
590
+ var s = year + month + day + hour + min + sec;
591
+ if (withMillis === true) {
592
+ var millis = d.getMilliseconds();
593
+ if (millis != 0) {
594
+ var sMillis = pad(String(millis), 3);
595
+ sMillis = sMillis.replace(/[0]+$/, "");
596
+ s = s + "." + sMillis;
597
+ }
598
+ }
599
+ return s + "Z";
600
+ };
601
+ this.zeroPadding = function (s, len) {
602
+ if (s.length >= len)
603
+ return s;
604
+ return new Array(len - s.length + 1).join('0') + s;
605
+ };
606
+ // --- PUBLIC METHODS --------------------
607
+ /**
608
+ * get string value of this string object
609
+ * @name getString
610
+ * @memberOf KJUR.asn1.DERAbstractTime#
611
+ * @function
612
+ * @return {String} string value of this time object
613
+ */
614
+ this.getString = function () {
615
+ return this.s;
616
+ };
617
+ /**
618
+ * set value by a string
619
+ * @name setString
620
+ * @memberOf KJUR.asn1.DERAbstractTime#
621
+ * @function
622
+ * @param {String} newS value by a string to set such like "130430235959Z"
623
+ */
624
+ this.setString = function (newS) {
625
+ this.hTLV = null;
626
+ this.isModified = true;
627
+ this.s = newS;
628
+ this.hV = stohex(newS);
629
+ };
630
+ /**
631
+ * set value by a Date object
632
+ * @name setByDateValue
633
+ * @memberOf KJUR.asn1.DERAbstractTime#
634
+ * @function
635
+ * @param {Integer} year year of date (ex. 2013)
636
+ * @param {Integer} month month of date between 1 and 12 (ex. 12)
637
+ * @param {Integer} day day of month
638
+ * @param {Integer} hour hours of date
639
+ * @param {Integer} min minutes of date
640
+ * @param {Integer} sec seconds of date
641
+ */
642
+ this.setByDateValue = function (year, month, day, hour, min, sec) {
643
+ var dateObject = new Date(Date.UTC(year, month - 1, day, hour, min, sec, 0));
644
+ this.setByDate(dateObject);
645
+ };
646
+ this.getFreshValueHex = function () {
647
+ return this.hV;
648
+ };
649
+ };
650
+ YAHOO.lang.extend(KJUR.asn1.DERAbstractTime, KJUR.asn1.ASN1Object);
651
+ // == END DERAbstractTime ==================================================
652
+ // == BEGIN DERAbstractStructured ============================================
653
+ /**
654
+ * base class for ASN.1 DER structured class
655
+ * @name KJUR.asn1.DERAbstractStructured
656
+ * @class base class for ASN.1 DER structured class
657
+ * @property {Array} asn1Array internal array of ASN1Object
658
+ * @extends KJUR.asn1.ASN1Object
659
+ * @description
660
+ * @see KJUR.asn1.ASN1Object - superclass
661
+ */
662
+ KJUR.asn1.DERAbstractStructured = function (params) {
663
+ KJUR.asn1.DERAbstractString.superclass.constructor.call(this);
664
+ var asn1Array = null;
665
+ /**
666
+ * set value by array of ASN1Object
667
+ * @name setByASN1ObjectArray
668
+ * @memberOf KJUR.asn1.DERAbstractStructured#
669
+ * @function
670
+ * @param {array} asn1ObjectArray array of ASN1Object to set
671
+ */
672
+ this.setByASN1ObjectArray = function (asn1ObjectArray) {
673
+ this.hTLV = null;
674
+ this.isModified = true;
675
+ this.asn1Array = asn1ObjectArray;
676
+ };
677
+ /**
678
+ * append an ASN1Object to internal array
679
+ * @name appendASN1Object
680
+ * @memberOf KJUR.asn1.DERAbstractStructured#
681
+ * @function
682
+ * @param {ASN1Object} asn1Object to add
683
+ */
684
+ this.appendASN1Object = function (asn1Object) {
685
+ this.hTLV = null;
686
+ this.isModified = true;
687
+ this.asn1Array.push(asn1Object);
688
+ };
689
+ this.asn1Array = new Array();
690
+ if (typeof params != "undefined") {
691
+ if (typeof params['array'] != "undefined") {
692
+ this.asn1Array = params['array'];
693
+ }
694
+ }
695
+ };
696
+ YAHOO.lang.extend(KJUR.asn1.DERAbstractStructured, KJUR.asn1.ASN1Object);
697
+ // ********************************************************************
698
+ // ASN.1 Object Classes
699
+ // ********************************************************************
700
+ // ********************************************************************
701
+ /**
702
+ * class for ASN.1 DER Boolean
703
+ * @name KJUR.asn1.DERBoolean
704
+ * @class class for ASN.1 DER Boolean
705
+ * @extends KJUR.asn1.ASN1Object
706
+ * @description
707
+ * @see KJUR.asn1.ASN1Object - superclass
708
+ */
709
+ KJUR.asn1.DERBoolean = function () {
710
+ KJUR.asn1.DERBoolean.superclass.constructor.call(this);
711
+ this.hT = "01";
712
+ this.hTLV = "0101ff";
713
+ };
714
+ YAHOO.lang.extend(KJUR.asn1.DERBoolean, KJUR.asn1.ASN1Object);
715
+ // ********************************************************************
716
+ /**
717
+ * class for ASN.1 DER Integer
718
+ * @name KJUR.asn1.DERInteger
719
+ * @class class for ASN.1 DER Integer
720
+ * @extends KJUR.asn1.ASN1Object
721
+ * @description
722
+ * <br/>
723
+ * As for argument 'params' for constructor, you can specify one of
724
+ * following properties:
725
+ * <ul>
726
+ * <li>int - specify initial ASN.1 value(V) by integer value</li>
727
+ * <li>bigint - specify initial ASN.1 value(V) by BigInteger object</li>
728
+ * <li>hex - specify initial ASN.1 value(V) by a hexadecimal string</li>
729
+ * </ul>
730
+ * NOTE: 'params' can be omitted.
731
+ */
732
+ KJUR.asn1.DERInteger = function (params) {
733
+ KJUR.asn1.DERInteger.superclass.constructor.call(this);
734
+ this.hT = "02";
735
+ /**
736
+ * set value by Tom Wu's BigInteger object
737
+ * @name setByBigInteger
738
+ * @memberOf KJUR.asn1.DERInteger#
739
+ * @function
740
+ * @param {BigInteger} bigIntegerValue to set
741
+ */
742
+ this.setByBigInteger = function (bigIntegerValue) {
743
+ this.hTLV = null;
744
+ this.isModified = true;
745
+ this.hV = KJUR.asn1.ASN1Util.bigIntToMinTwosComplementsHex(bigIntegerValue);
746
+ };
747
+ /**
748
+ * set value by integer value
749
+ * @name setByInteger
750
+ * @memberOf KJUR.asn1.DERInteger
751
+ * @function
752
+ * @param {Integer} integer value to set
753
+ */
754
+ this.setByInteger = function (intValue) {
755
+ var bi = new BigInteger(String(intValue), 10);
756
+ this.setByBigInteger(bi);
757
+ };
758
+ /**
759
+ * set value by integer value
760
+ * @name setValueHex
761
+ * @memberOf KJUR.asn1.DERInteger#
762
+ * @function
763
+ * @param {String} hexadecimal string of integer value
764
+ * @description
765
+ * <br/>
766
+ * NOTE: Value shall be represented by minimum octet length of
767
+ * two's complement representation.
768
+ * @example
769
+ * new KJUR.asn1.DERInteger(123);
770
+ * new KJUR.asn1.DERInteger({'int': 123});
771
+ * new KJUR.asn1.DERInteger({'hex': '1fad'});
772
+ */
773
+ this.setValueHex = function (newHexString) {
774
+ this.hV = newHexString;
775
+ };
776
+ this.getFreshValueHex = function () {
777
+ return this.hV;
778
+ };
779
+ if (typeof params != "undefined") {
780
+ if (typeof params['bigint'] != "undefined") {
781
+ this.setByBigInteger(params['bigint']);
782
+ }
783
+ else if (typeof params['int'] != "undefined") {
784
+ this.setByInteger(params['int']);
785
+ }
786
+ else if (typeof params == "number") {
787
+ this.setByInteger(params);
788
+ }
789
+ else if (typeof params['hex'] != "undefined") {
790
+ this.setValueHex(params['hex']);
791
+ }
792
+ }
793
+ };
794
+ YAHOO.lang.extend(KJUR.asn1.DERInteger, KJUR.asn1.ASN1Object);
795
+ // ********************************************************************
796
+ /**
797
+ * class for ASN.1 DER encoded BitString primitive
798
+ * @name KJUR.asn1.DERBitString
799
+ * @class class for ASN.1 DER encoded BitString primitive
800
+ * @extends KJUR.asn1.ASN1Object
801
+ * @description
802
+ * <br/>
803
+ * As for argument 'params' for constructor, you can specify one of
804
+ * following properties:
805
+ * <ul>
806
+ * <li>bin - specify binary string (ex. '10111')</li>
807
+ * <li>array - specify array of boolean (ex. [true,false,true,true])</li>
808
+ * <li>hex - specify hexadecimal string of ASN.1 value(V) including unused bits</li>
809
+ * <li>obj - specify {@link KJUR.asn1.ASN1Util.newObject}
810
+ * argument for "BitString encapsulates" structure.</li>
811
+ * </ul>
812
+ * NOTE1: 'params' can be omitted.<br/>
813
+ * NOTE2: 'obj' parameter have been supported since
814
+ * asn1 1.0.11, jsrsasign 6.1.1 (2016-Sep-25).<br/>
815
+ * @example
816
+ * // default constructor
817
+ * o = new KJUR.asn1.DERBitString();
818
+ * // initialize with binary string
819
+ * o = new KJUR.asn1.DERBitString({bin: "1011"});
820
+ * // initialize with boolean array
821
+ * o = new KJUR.asn1.DERBitString({array: [true,false,true,true]});
822
+ * // initialize with hexadecimal string (04 is unused bits)
823
+ * o = new KJUR.asn1.DEROctetString({hex: "04bac0"});
824
+ * // initialize with ASN1Util.newObject argument for encapsulated
825
+ * o = new KJUR.asn1.DERBitString({obj: {seq: [{int: 3}, {prnstr: 'aaa'}]}});
826
+ * // above generates a ASN.1 data like this:
827
+ * // BIT STRING, encapsulates {
828
+ * // SEQUENCE {
829
+ * // INTEGER 3
830
+ * // PrintableString 'aaa'
831
+ * // }
832
+ * // }
833
+ */
834
+ KJUR.asn1.DERBitString = function (params) {
835
+ if (params !== undefined && typeof params.obj !== "undefined") {
836
+ var o = KJUR.asn1.ASN1Util.newObject(params.obj);
837
+ params.hex = "00" + o.getEncodedHex();
838
+ }
839
+ KJUR.asn1.DERBitString.superclass.constructor.call(this);
840
+ this.hT = "03";
841
+ /**
842
+ * set ASN.1 value(V) by a hexadecimal string including unused bits
843
+ * @name setHexValueIncludingUnusedBits
844
+ * @memberOf KJUR.asn1.DERBitString#
845
+ * @function
846
+ * @param {String} newHexStringIncludingUnusedBits
847
+ */
848
+ this.setHexValueIncludingUnusedBits = function (newHexStringIncludingUnusedBits) {
849
+ this.hTLV = null;
850
+ this.isModified = true;
851
+ this.hV = newHexStringIncludingUnusedBits;
852
+ };
853
+ /**
854
+ * set ASN.1 value(V) by unused bit and hexadecimal string of value
855
+ * @name setUnusedBitsAndHexValue
856
+ * @memberOf KJUR.asn1.DERBitString#
857
+ * @function
858
+ * @param {Integer} unusedBits
859
+ * @param {String} hValue
860
+ */
861
+ this.setUnusedBitsAndHexValue = function (unusedBits, hValue) {
862
+ if (unusedBits < 0 || 7 < unusedBits) {
863
+ throw "unused bits shall be from 0 to 7: u = " + unusedBits;
864
+ }
865
+ var hUnusedBits = "0" + unusedBits;
866
+ this.hTLV = null;
867
+ this.isModified = true;
868
+ this.hV = hUnusedBits + hValue;
869
+ };
870
+ /**
871
+ * set ASN.1 DER BitString by binary string<br/>
872
+ * @name setByBinaryString
873
+ * @memberOf KJUR.asn1.DERBitString#
874
+ * @function
875
+ * @param {String} binaryString binary value string (i.e. '10111')
876
+ * @description
877
+ * Its unused bits will be calculated automatically by length of
878
+ * 'binaryValue'. <br/>
879
+ * NOTE: Trailing zeros '0' will be ignored.
880
+ * @example
881
+ * o = new KJUR.asn1.DERBitString();
882
+ * o.setByBooleanArray("01011");
883
+ */
884
+ this.setByBinaryString = function (binaryString) {
885
+ binaryString = binaryString.replace(/0+$/, '');
886
+ var unusedBits = 8 - binaryString.length % 8;
887
+ if (unusedBits == 8)
888
+ unusedBits = 0;
889
+ for (var i = 0; i <= unusedBits; i++) {
890
+ binaryString += '0';
891
+ }
892
+ var h = '';
893
+ for (var i = 0; i < binaryString.length - 1; i += 8) {
894
+ var b = binaryString.substr(i, 8);
895
+ var x = parseInt(b, 2).toString(16);
896
+ if (x.length == 1)
897
+ x = '0' + x;
898
+ h += x;
899
+ }
900
+ this.hTLV = null;
901
+ this.isModified = true;
902
+ this.hV = '0' + unusedBits + h;
903
+ };
904
+ /**
905
+ * set ASN.1 TLV value(V) by an array of boolean<br/>
906
+ * @name setByBooleanArray
907
+ * @memberOf KJUR.asn1.DERBitString#
908
+ * @function
909
+ * @param {array} booleanArray array of boolean (ex. [true, false, true])
910
+ * @description
911
+ * NOTE: Trailing falses will be ignored in the ASN.1 DER Object.
912
+ * @example
913
+ * o = new KJUR.asn1.DERBitString();
914
+ * o.setByBooleanArray([false, true, false, true, true]);
915
+ */
916
+ this.setByBooleanArray = function (booleanArray) {
917
+ var s = '';
918
+ for (var i = 0; i < booleanArray.length; i++) {
919
+ if (booleanArray[i] == true) {
920
+ s += '1';
921
+ }
922
+ else {
923
+ s += '0';
924
+ }
925
+ }
926
+ this.setByBinaryString(s);
927
+ };
928
+ /**
929
+ * generate an array of falses with specified length<br/>
930
+ * @name newFalseArray
931
+ * @memberOf KJUR.asn1.DERBitString
932
+ * @function
933
+ * @param {Integer} nLength length of array to generate
934
+ * @return {array} array of boolean falses
935
+ * @description
936
+ * This static method may be useful to initialize boolean array.
937
+ * @example
938
+ * o = new KJUR.asn1.DERBitString();
939
+ * o.newFalseArray(3) &rarr; [false, false, false]
940
+ */
941
+ this.newFalseArray = function (nLength) {
942
+ var a = new Array(nLength);
943
+ for (var i = 0; i < nLength; i++) {
944
+ a[i] = false;
945
+ }
946
+ return a;
947
+ };
948
+ this.getFreshValueHex = function () {
949
+ return this.hV;
950
+ };
951
+ if (typeof params != "undefined") {
952
+ if (typeof params == "string" && params.toLowerCase().match(/^[0-9a-f]+$/)) {
953
+ this.setHexValueIncludingUnusedBits(params);
954
+ }
955
+ else if (typeof params['hex'] != "undefined") {
956
+ this.setHexValueIncludingUnusedBits(params['hex']);
957
+ }
958
+ else if (typeof params['bin'] != "undefined") {
959
+ this.setByBinaryString(params['bin']);
960
+ }
961
+ else if (typeof params['array'] != "undefined") {
962
+ this.setByBooleanArray(params['array']);
963
+ }
964
+ }
965
+ };
966
+ YAHOO.lang.extend(KJUR.asn1.DERBitString, KJUR.asn1.ASN1Object);
967
+ // ********************************************************************
968
+ /**
969
+ * class for ASN.1 DER OctetString<br/>
970
+ * @name KJUR.asn1.DEROctetString
971
+ * @class class for ASN.1 DER OctetString
972
+ * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})
973
+ * @extends KJUR.asn1.DERAbstractString
974
+ * @description
975
+ * This class provides ASN.1 OctetString simple type.<br/>
976
+ * Supported "params" attributes are:
977
+ * <ul>
978
+ * <li>str - to set a string as a value</li>
979
+ * <li>hex - to set a hexadecimal string as a value</li>
980
+ * <li>obj - to set a encapsulated ASN.1 value by JSON object
981
+ * which is defined in {@link KJUR.asn1.ASN1Util.newObject}</li>
982
+ * </ul>
983
+ * NOTE: A parameter 'obj' have been supported
984
+ * for "OCTET STRING, encapsulates" structure.
985
+ * since asn1 1.0.11, jsrsasign 6.1.1 (2016-Sep-25).
986
+ * @see KJUR.asn1.DERAbstractString - superclass
987
+ * @example
988
+ * // default constructor
989
+ * o = new KJUR.asn1.DEROctetString();
990
+ * // initialize with string
991
+ * o = new KJUR.asn1.DEROctetString({str: "aaa"});
992
+ * // initialize with hexadecimal string
993
+ * o = new KJUR.asn1.DEROctetString({hex: "616161"});
994
+ * // initialize with ASN1Util.newObject argument
995
+ * o = new KJUR.asn1.DEROctetString({obj: {seq: [{int: 3}, {prnstr: 'aaa'}]}});
996
+ * // above generates a ASN.1 data like this:
997
+ * // OCTET STRING, encapsulates {
998
+ * // SEQUENCE {
999
+ * // INTEGER 3
1000
+ * // PrintableString 'aaa'
1001
+ * // }
1002
+ * // }
1003
+ */
1004
+ KJUR.asn1.DEROctetString = function (params) {
1005
+ if (params !== undefined && typeof params.obj !== "undefined") {
1006
+ var o = KJUR.asn1.ASN1Util.newObject(params.obj);
1007
+ params.hex = o.getEncodedHex();
1008
+ }
1009
+ KJUR.asn1.DEROctetString.superclass.constructor.call(this, params);
1010
+ this.hT = "04";
1011
+ };
1012
+ YAHOO.lang.extend(KJUR.asn1.DEROctetString, KJUR.asn1.DERAbstractString);
1013
+ // ********************************************************************
1014
+ /**
1015
+ * class for ASN.1 DER Null
1016
+ * @name KJUR.asn1.DERNull
1017
+ * @class class for ASN.1 DER Null
1018
+ * @extends KJUR.asn1.ASN1Object
1019
+ * @description
1020
+ * @see KJUR.asn1.ASN1Object - superclass
1021
+ */
1022
+ KJUR.asn1.DERNull = function () {
1023
+ KJUR.asn1.DERNull.superclass.constructor.call(this);
1024
+ this.hT = "05";
1025
+ this.hTLV = "0500";
1026
+ };
1027
+ YAHOO.lang.extend(KJUR.asn1.DERNull, KJUR.asn1.ASN1Object);
1028
+ // ********************************************************************
1029
+ /**
1030
+ * class for ASN.1 DER ObjectIdentifier
1031
+ * @name KJUR.asn1.DERObjectIdentifier
1032
+ * @class class for ASN.1 DER ObjectIdentifier
1033
+ * @param {Array} params associative array of parameters (ex. {'oid': '2.5.4.5'})
1034
+ * @extends KJUR.asn1.ASN1Object
1035
+ * @description
1036
+ * <br/>
1037
+ * As for argument 'params' for constructor, you can specify one of
1038
+ * following properties:
1039
+ * <ul>
1040
+ * <li>oid - specify initial ASN.1 value(V) by a oid string (ex. 2.5.4.13)</li>
1041
+ * <li>hex - specify initial ASN.1 value(V) by a hexadecimal string</li>
1042
+ * </ul>
1043
+ * NOTE: 'params' can be omitted.
1044
+ */
1045
+ KJUR.asn1.DERObjectIdentifier = function (params) {
1046
+ var itox = function (i) {
1047
+ var h = i.toString(16);
1048
+ if (h.length == 1)
1049
+ h = '0' + h;
1050
+ return h;
1051
+ };
1052
+ var roidtox = function (roid) {
1053
+ var h = '';
1054
+ var bi = new BigInteger(roid, 10);
1055
+ var b = bi.toString(2);
1056
+ var padLen = 7 - b.length % 7;
1057
+ if (padLen == 7)
1058
+ padLen = 0;
1059
+ var bPad = '';
1060
+ for (var i = 0; i < padLen; i++)
1061
+ bPad += '0';
1062
+ b = bPad + b;
1063
+ for (var i = 0; i < b.length - 1; i += 7) {
1064
+ var b8 = b.substr(i, 7);
1065
+ if (i != b.length - 7)
1066
+ b8 = '1' + b8;
1067
+ h += itox(parseInt(b8, 2));
1068
+ }
1069
+ return h;
1070
+ };
1071
+ KJUR.asn1.DERObjectIdentifier.superclass.constructor.call(this);
1072
+ this.hT = "06";
1073
+ /**
1074
+ * set value by a hexadecimal string
1075
+ * @name setValueHex
1076
+ * @memberOf KJUR.asn1.DERObjectIdentifier#
1077
+ * @function
1078
+ * @param {String} newHexString hexadecimal value of OID bytes
1079
+ */
1080
+ this.setValueHex = function (newHexString) {
1081
+ this.hTLV = null;
1082
+ this.isModified = true;
1083
+ this.s = null;
1084
+ this.hV = newHexString;
1085
+ };
1086
+ /**
1087
+ * set value by a OID string<br/>
1088
+ * @name setValueOidString
1089
+ * @memberOf KJUR.asn1.DERObjectIdentifier#
1090
+ * @function
1091
+ * @param {String} oidString OID string (ex. 2.5.4.13)
1092
+ * @example
1093
+ * o = new KJUR.asn1.DERObjectIdentifier();
1094
+ * o.setValueOidString("2.5.4.13");
1095
+ */
1096
+ this.setValueOidString = function (oidString) {
1097
+ if (!oidString.match(/^[0-9.]+$/)) {
1098
+ throw "malformed oid string: " + oidString;
1099
+ }
1100
+ var h = '';
1101
+ var a = oidString.split('.');
1102
+ var i0 = parseInt(a[0]) * 40 + parseInt(a[1]);
1103
+ h += itox(i0);
1104
+ a.splice(0, 2);
1105
+ for (var i = 0; i < a.length; i++) {
1106
+ h += roidtox(a[i]);
1107
+ }
1108
+ this.hTLV = null;
1109
+ this.isModified = true;
1110
+ this.s = null;
1111
+ this.hV = h;
1112
+ };
1113
+ /**
1114
+ * set value by a OID name
1115
+ * @name setValueName
1116
+ * @memberOf KJUR.asn1.DERObjectIdentifier#
1117
+ * @function
1118
+ * @param {String} oidName OID name (ex. 'serverAuth')
1119
+ * @since 1.0.1
1120
+ * @description
1121
+ * OID name shall be defined in 'KJUR.asn1.x509.OID.name2oidList'.
1122
+ * Otherwise raise error.
1123
+ * @example
1124
+ * o = new KJUR.asn1.DERObjectIdentifier();
1125
+ * o.setValueName("serverAuth");
1126
+ */
1127
+ this.setValueName = function (oidName) {
1128
+ var oid = KJUR.asn1.x509.OID.name2oid(oidName);
1129
+ if (oid !== '') {
1130
+ this.setValueOidString(oid);
1131
+ }
1132
+ else {
1133
+ throw "DERObjectIdentifier oidName undefined: " + oidName;
1134
+ }
1135
+ };
1136
+ this.getFreshValueHex = function () {
1137
+ return this.hV;
1138
+ };
1139
+ if (params !== undefined) {
1140
+ if (typeof params === "string") {
1141
+ if (params.match(/^[0-2].[0-9.]+$/)) {
1142
+ this.setValueOidString(params);
1143
+ }
1144
+ else {
1145
+ this.setValueName(params);
1146
+ }
1147
+ }
1148
+ else if (params.oid !== undefined) {
1149
+ this.setValueOidString(params.oid);
1150
+ }
1151
+ else if (params.hex !== undefined) {
1152
+ this.setValueHex(params.hex);
1153
+ }
1154
+ else if (params.name !== undefined) {
1155
+ this.setValueName(params.name);
1156
+ }
1157
+ }
1158
+ };
1159
+ YAHOO.lang.extend(KJUR.asn1.DERObjectIdentifier, KJUR.asn1.ASN1Object);
1160
+ // ********************************************************************
1161
+ /**
1162
+ * class for ASN.1 DER Enumerated
1163
+ * @name KJUR.asn1.DEREnumerated
1164
+ * @class class for ASN.1 DER Enumerated
1165
+ * @extends KJUR.asn1.ASN1Object
1166
+ * @description
1167
+ * <br/>
1168
+ * As for argument 'params' for constructor, you can specify one of
1169
+ * following properties:
1170
+ * <ul>
1171
+ * <li>int - specify initial ASN.1 value(V) by integer value</li>
1172
+ * <li>hex - specify initial ASN.1 value(V) by a hexadecimal string</li>
1173
+ * </ul>
1174
+ * NOTE: 'params' can be omitted.
1175
+ * @example
1176
+ * new KJUR.asn1.DEREnumerated(123);
1177
+ * new KJUR.asn1.DEREnumerated({int: 123});
1178
+ * new KJUR.asn1.DEREnumerated({hex: '1fad'});
1179
+ */
1180
+ KJUR.asn1.DEREnumerated = function (params) {
1181
+ KJUR.asn1.DEREnumerated.superclass.constructor.call(this);
1182
+ this.hT = "0a";
1183
+ /**
1184
+ * set value by Tom Wu's BigInteger object
1185
+ * @name setByBigInteger
1186
+ * @memberOf KJUR.asn1.DEREnumerated#
1187
+ * @function
1188
+ * @param {BigInteger} bigIntegerValue to set
1189
+ */
1190
+ this.setByBigInteger = function (bigIntegerValue) {
1191
+ this.hTLV = null;
1192
+ this.isModified = true;
1193
+ this.hV = KJUR.asn1.ASN1Util.bigIntToMinTwosComplementsHex(bigIntegerValue);
1194
+ };
1195
+ /**
1196
+ * set value by integer value
1197
+ * @name setByInteger
1198
+ * @memberOf KJUR.asn1.DEREnumerated#
1199
+ * @function
1200
+ * @param {Integer} integer value to set
1201
+ */
1202
+ this.setByInteger = function (intValue) {
1203
+ var bi = new BigInteger(String(intValue), 10);
1204
+ this.setByBigInteger(bi);
1205
+ };
1206
+ /**
1207
+ * set value by integer value
1208
+ * @name setValueHex
1209
+ * @memberOf KJUR.asn1.DEREnumerated#
1210
+ * @function
1211
+ * @param {String} hexadecimal string of integer value
1212
+ * @description
1213
+ * <br/>
1214
+ * NOTE: Value shall be represented by minimum octet length of
1215
+ * two's complement representation.
1216
+ */
1217
+ this.setValueHex = function (newHexString) {
1218
+ this.hV = newHexString;
1219
+ };
1220
+ this.getFreshValueHex = function () {
1221
+ return this.hV;
1222
+ };
1223
+ if (typeof params != "undefined") {
1224
+ if (typeof params['int'] != "undefined") {
1225
+ this.setByInteger(params['int']);
1226
+ }
1227
+ else if (typeof params == "number") {
1228
+ this.setByInteger(params);
1229
+ }
1230
+ else if (typeof params['hex'] != "undefined") {
1231
+ this.setValueHex(params['hex']);
1232
+ }
1233
+ }
1234
+ };
1235
+ YAHOO.lang.extend(KJUR.asn1.DEREnumerated, KJUR.asn1.ASN1Object);
1236
+ // ********************************************************************
1237
+ /**
1238
+ * class for ASN.1 DER UTF8String
1239
+ * @name KJUR.asn1.DERUTF8String
1240
+ * @class class for ASN.1 DER UTF8String
1241
+ * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})
1242
+ * @extends KJUR.asn1.DERAbstractString
1243
+ * @description
1244
+ * @see KJUR.asn1.DERAbstractString - superclass
1245
+ */
1246
+ KJUR.asn1.DERUTF8String = function (params) {
1247
+ KJUR.asn1.DERUTF8String.superclass.constructor.call(this, params);
1248
+ this.hT = "0c";
1249
+ };
1250
+ YAHOO.lang.extend(KJUR.asn1.DERUTF8String, KJUR.asn1.DERAbstractString);
1251
+ // ********************************************************************
1252
+ /**
1253
+ * class for ASN.1 DER NumericString
1254
+ * @name KJUR.asn1.DERNumericString
1255
+ * @class class for ASN.1 DER NumericString
1256
+ * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})
1257
+ * @extends KJUR.asn1.DERAbstractString
1258
+ * @description
1259
+ * @see KJUR.asn1.DERAbstractString - superclass
1260
+ */
1261
+ KJUR.asn1.DERNumericString = function (params) {
1262
+ KJUR.asn1.DERNumericString.superclass.constructor.call(this, params);
1263
+ this.hT = "12";
1264
+ };
1265
+ YAHOO.lang.extend(KJUR.asn1.DERNumericString, KJUR.asn1.DERAbstractString);
1266
+ // ********************************************************************
1267
+ /**
1268
+ * class for ASN.1 DER PrintableString
1269
+ * @name KJUR.asn1.DERPrintableString
1270
+ * @class class for ASN.1 DER PrintableString
1271
+ * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})
1272
+ * @extends KJUR.asn1.DERAbstractString
1273
+ * @description
1274
+ * @see KJUR.asn1.DERAbstractString - superclass
1275
+ */
1276
+ KJUR.asn1.DERPrintableString = function (params) {
1277
+ KJUR.asn1.DERPrintableString.superclass.constructor.call(this, params);
1278
+ this.hT = "13";
1279
+ };
1280
+ YAHOO.lang.extend(KJUR.asn1.DERPrintableString, KJUR.asn1.DERAbstractString);
1281
+ // ********************************************************************
1282
+ /**
1283
+ * class for ASN.1 DER TeletexString
1284
+ * @name KJUR.asn1.DERTeletexString
1285
+ * @class class for ASN.1 DER TeletexString
1286
+ * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})
1287
+ * @extends KJUR.asn1.DERAbstractString
1288
+ * @description
1289
+ * @see KJUR.asn1.DERAbstractString - superclass
1290
+ */
1291
+ KJUR.asn1.DERTeletexString = function (params) {
1292
+ KJUR.asn1.DERTeletexString.superclass.constructor.call(this, params);
1293
+ this.hT = "14";
1294
+ };
1295
+ YAHOO.lang.extend(KJUR.asn1.DERTeletexString, KJUR.asn1.DERAbstractString);
1296
+ // ********************************************************************
1297
+ /**
1298
+ * class for ASN.1 DER IA5String
1299
+ * @name KJUR.asn1.DERIA5String
1300
+ * @class class for ASN.1 DER IA5String
1301
+ * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})
1302
+ * @extends KJUR.asn1.DERAbstractString
1303
+ * @description
1304
+ * @see KJUR.asn1.DERAbstractString - superclass
1305
+ */
1306
+ KJUR.asn1.DERIA5String = function (params) {
1307
+ KJUR.asn1.DERIA5String.superclass.constructor.call(this, params);
1308
+ this.hT = "16";
1309
+ };
1310
+ YAHOO.lang.extend(KJUR.asn1.DERIA5String, KJUR.asn1.DERAbstractString);
1311
+ // ********************************************************************
1312
+ /**
1313
+ * class for ASN.1 DER UTCTime
1314
+ * @name KJUR.asn1.DERUTCTime
1315
+ * @class class for ASN.1 DER UTCTime
1316
+ * @param {Array} params associative array of parameters (ex. {'str': '130430235959Z'})
1317
+ * @extends KJUR.asn1.DERAbstractTime
1318
+ * @description
1319
+ * <br/>
1320
+ * As for argument 'params' for constructor, you can specify one of
1321
+ * following properties:
1322
+ * <ul>
1323
+ * <li>str - specify initial ASN.1 value(V) by a string (ex.'130430235959Z')</li>
1324
+ * <li>hex - specify initial ASN.1 value(V) by a hexadecimal string</li>
1325
+ * <li>date - specify Date object.</li>
1326
+ * </ul>
1327
+ * NOTE: 'params' can be omitted.
1328
+ * <h4>EXAMPLES</h4>
1329
+ * @example
1330
+ * d1 = new KJUR.asn1.DERUTCTime();
1331
+ * d1.setString('130430125959Z');
1332
+ *
1333
+ * d2 = new KJUR.asn1.DERUTCTime({'str': '130430125959Z'});
1334
+ * d3 = new KJUR.asn1.DERUTCTime({'date': new Date(Date.UTC(2015, 0, 31, 0, 0, 0, 0))});
1335
+ * d4 = new KJUR.asn1.DERUTCTime('130430125959Z');
1336
+ */
1337
+ KJUR.asn1.DERUTCTime = function (params) {
1338
+ KJUR.asn1.DERUTCTime.superclass.constructor.call(this, params);
1339
+ this.hT = "17";
1340
+ /**
1341
+ * set value by a Date object<br/>
1342
+ * @name setByDate
1343
+ * @memberOf KJUR.asn1.DERUTCTime#
1344
+ * @function
1345
+ * @param {Date} dateObject Date object to set ASN.1 value(V)
1346
+ * @example
1347
+ * o = new KJUR.asn1.DERUTCTime();
1348
+ * o.setByDate(new Date("2016/12/31"));
1349
+ */
1350
+ this.setByDate = function (dateObject) {
1351
+ this.hTLV = null;
1352
+ this.isModified = true;
1353
+ this.date = dateObject;
1354
+ this.s = this.formatDate(this.date, 'utc');
1355
+ this.hV = stohex(this.s);
1356
+ };
1357
+ this.getFreshValueHex = function () {
1358
+ if (typeof this.date == "undefined" && typeof this.s == "undefined") {
1359
+ this.date = new Date();
1360
+ this.s = this.formatDate(this.date, 'utc');
1361
+ this.hV = stohex(this.s);
1362
+ }
1363
+ return this.hV;
1364
+ };
1365
+ if (params !== undefined) {
1366
+ if (params.str !== undefined) {
1367
+ this.setString(params.str);
1368
+ }
1369
+ else if (typeof params == "string" && params.match(/^[0-9]{12}Z$/)) {
1370
+ this.setString(params);
1371
+ }
1372
+ else if (params.hex !== undefined) {
1373
+ this.setStringHex(params.hex);
1374
+ }
1375
+ else if (params.date !== undefined) {
1376
+ this.setByDate(params.date);
1377
+ }
1378
+ }
1379
+ };
1380
+ YAHOO.lang.extend(KJUR.asn1.DERUTCTime, KJUR.asn1.DERAbstractTime);
1381
+ // ********************************************************************
1382
+ /**
1383
+ * class for ASN.1 DER GeneralizedTime
1384
+ * @name KJUR.asn1.DERGeneralizedTime
1385
+ * @class class for ASN.1 DER GeneralizedTime
1386
+ * @param {Array} params associative array of parameters (ex. {'str': '20130430235959Z'})
1387
+ * @property {Boolean} withMillis flag to show milliseconds or not
1388
+ * @extends KJUR.asn1.DERAbstractTime
1389
+ * @description
1390
+ * <br/>
1391
+ * As for argument 'params' for constructor, you can specify one of
1392
+ * following properties:
1393
+ * <ul>
1394
+ * <li>str - specify initial ASN.1 value(V) by a string (ex.'20130430235959Z')</li>
1395
+ * <li>hex - specify initial ASN.1 value(V) by a hexadecimal string</li>
1396
+ * <li>date - specify Date object.</li>
1397
+ * <li>millis - specify flag to show milliseconds (from 1.0.6)</li>
1398
+ * </ul>
1399
+ * NOTE1: 'params' can be omitted.
1400
+ * NOTE2: 'withMillis' property is supported from asn1 1.0.6.
1401
+ */
1402
+ KJUR.asn1.DERGeneralizedTime = function (params) {
1403
+ KJUR.asn1.DERGeneralizedTime.superclass.constructor.call(this, params);
1404
+ this.hT = "18";
1405
+ this.withMillis = false;
1406
+ /**
1407
+ * set value by a Date object
1408
+ * @name setByDate
1409
+ * @memberOf KJUR.asn1.DERGeneralizedTime#
1410
+ * @function
1411
+ * @param {Date} dateObject Date object to set ASN.1 value(V)
1412
+ * @example
1413
+ * When you specify UTC time, use 'Date.UTC' method like this:<br/>
1414
+ * o1 = new DERUTCTime();
1415
+ * o1.setByDate(date);
1416
+ *
1417
+ * date = new Date(Date.UTC(2015, 0, 31, 23, 59, 59, 0)); #2015JAN31 23:59:59
1418
+ */
1419
+ this.setByDate = function (dateObject) {
1420
+ this.hTLV = null;
1421
+ this.isModified = true;
1422
+ this.date = dateObject;
1423
+ this.s = this.formatDate(this.date, 'gen', this.withMillis);
1424
+ this.hV = stohex(this.s);
1425
+ };
1426
+ this.getFreshValueHex = function () {
1427
+ if (this.date === undefined && this.s === undefined) {
1428
+ this.date = new Date();
1429
+ this.s = this.formatDate(this.date, 'gen', this.withMillis);
1430
+ this.hV = stohex(this.s);
1431
+ }
1432
+ return this.hV;
1433
+ };
1434
+ if (params !== undefined) {
1435
+ if (params.str !== undefined) {
1436
+ this.setString(params.str);
1437
+ }
1438
+ else if (typeof params == "string" && params.match(/^[0-9]{14}Z$/)) {
1439
+ this.setString(params);
1440
+ }
1441
+ else if (params.hex !== undefined) {
1442
+ this.setStringHex(params.hex);
1443
+ }
1444
+ else if (params.date !== undefined) {
1445
+ this.setByDate(params.date);
1446
+ }
1447
+ if (params.millis === true) {
1448
+ this.withMillis = true;
1449
+ }
1450
+ }
1451
+ };
1452
+ YAHOO.lang.extend(KJUR.asn1.DERGeneralizedTime, KJUR.asn1.DERAbstractTime);
1453
+ // ********************************************************************
1454
+ /**
1455
+ * class for ASN.1 DER Sequence
1456
+ * @name KJUR.asn1.DERSequence
1457
+ * @class class for ASN.1 DER Sequence
1458
+ * @extends KJUR.asn1.DERAbstractStructured
1459
+ * @description
1460
+ * <br/>
1461
+ * As for argument 'params' for constructor, you can specify one of
1462
+ * following properties:
1463
+ * <ul>
1464
+ * <li>array - specify array of ASN1Object to set elements of content</li>
1465
+ * </ul>
1466
+ * NOTE: 'params' can be omitted.
1467
+ */
1468
+ KJUR.asn1.DERSequence = function (params) {
1469
+ KJUR.asn1.DERSequence.superclass.constructor.call(this, params);
1470
+ this.hT = "30";
1471
+ this.getFreshValueHex = function () {
1472
+ var h = '';
1473
+ for (var i = 0; i < this.asn1Array.length; i++) {
1474
+ var asn1Obj = this.asn1Array[i];
1475
+ h += asn1Obj.getEncodedHex();
1476
+ }
1477
+ this.hV = h;
1478
+ return this.hV;
1479
+ };
1480
+ };
1481
+ YAHOO.lang.extend(KJUR.asn1.DERSequence, KJUR.asn1.DERAbstractStructured);
1482
+ // ********************************************************************
1483
+ /**
1484
+ * class for ASN.1 DER Set
1485
+ * @name KJUR.asn1.DERSet
1486
+ * @class class for ASN.1 DER Set
1487
+ * @extends KJUR.asn1.DERAbstractStructured
1488
+ * @description
1489
+ * <br/>
1490
+ * As for argument 'params' for constructor, you can specify one of
1491
+ * following properties:
1492
+ * <ul>
1493
+ * <li>array - specify array of ASN1Object to set elements of content</li>
1494
+ * <li>sortflag - flag for sort (default: true). ASN.1 BER is not sorted in 'SET OF'.</li>
1495
+ * </ul>
1496
+ * NOTE1: 'params' can be omitted.<br/>
1497
+ * NOTE2: sortflag is supported since 1.0.5.
1498
+ */
1499
+ KJUR.asn1.DERSet = function (params) {
1500
+ KJUR.asn1.DERSet.superclass.constructor.call(this, params);
1501
+ this.hT = "31";
1502
+ this.sortFlag = true; // item shall be sorted only in ASN.1 DER
1503
+ this.getFreshValueHex = function () {
1504
+ var a = new Array();
1505
+ for (var i = 0; i < this.asn1Array.length; i++) {
1506
+ var asn1Obj = this.asn1Array[i];
1507
+ a.push(asn1Obj.getEncodedHex());
1508
+ }
1509
+ if (this.sortFlag == true)
1510
+ a.sort();
1511
+ this.hV = a.join('');
1512
+ return this.hV;
1513
+ };
1514
+ if (typeof params != "undefined") {
1515
+ if (typeof params.sortflag != "undefined" &&
1516
+ params.sortflag == false)
1517
+ this.sortFlag = false;
1518
+ }
1519
+ };
1520
+ YAHOO.lang.extend(KJUR.asn1.DERSet, KJUR.asn1.DERAbstractStructured);
1521
+ // ********************************************************************
1522
+ /**
1523
+ * class for ASN.1 DER TaggedObject
1524
+ * @name KJUR.asn1.DERTaggedObject
1525
+ * @class class for ASN.1 DER TaggedObject
1526
+ * @extends KJUR.asn1.ASN1Object
1527
+ * @description
1528
+ * <br/>
1529
+ * Parameter 'tagNoNex' is ASN.1 tag(T) value for this object.
1530
+ * For example, if you find '[1]' tag in a ASN.1 dump,
1531
+ * 'tagNoHex' will be 'a1'.
1532
+ * <br/>
1533
+ * As for optional argument 'params' for constructor, you can specify *ANY* of
1534
+ * following properties:
1535
+ * <ul>
1536
+ * <li>explicit - specify true if this is explicit tag otherwise false
1537
+ * (default is 'true').</li>
1538
+ * <li>tag - specify tag (default is 'a0' which means [0])</li>
1539
+ * <li>obj - specify ASN1Object which is tagged</li>
1540
+ * </ul>
1541
+ * @example
1542
+ * d1 = new KJUR.asn1.DERUTF8String({'str':'a'});
1543
+ * d2 = new KJUR.asn1.DERTaggedObject({'obj': d1});
1544
+ * hex = d2.getEncodedHex();
1545
+ */
1546
+ KJUR.asn1.DERTaggedObject = function (params) {
1547
+ KJUR.asn1.DERTaggedObject.superclass.constructor.call(this);
1548
+ this.hT = "a0";
1549
+ this.hV = '';
1550
+ this.isExplicit = true;
1551
+ this.asn1Object = null;
1552
+ /**
1553
+ * set value by an ASN1Object
1554
+ * @name setString
1555
+ * @memberOf KJUR.asn1.DERTaggedObject#
1556
+ * @function
1557
+ * @param {Boolean} isExplicitFlag flag for explicit/implicit tag
1558
+ * @param {Integer} tagNoHex hexadecimal string of ASN.1 tag
1559
+ * @param {ASN1Object} asn1Object ASN.1 to encapsulate
1560
+ */
1561
+ this.setASN1Object = function (isExplicitFlag, tagNoHex, asn1Object) {
1562
+ this.hT = tagNoHex;
1563
+ this.isExplicit = isExplicitFlag;
1564
+ this.asn1Object = asn1Object;
1565
+ if (this.isExplicit) {
1566
+ this.hV = this.asn1Object.getEncodedHex();
1567
+ this.hTLV = null;
1568
+ this.isModified = true;
1569
+ }
1570
+ else {
1571
+ this.hV = null;
1572
+ this.hTLV = asn1Object.getEncodedHex();
1573
+ this.hTLV = this.hTLV.replace(/^../, tagNoHex);
1574
+ this.isModified = false;
1575
+ }
1576
+ };
1577
+ this.getFreshValueHex = function () {
1578
+ return this.hV;
1579
+ };
1580
+ if (typeof params != "undefined") {
1581
+ if (typeof params['tag'] != "undefined") {
1582
+ this.hT = params['tag'];
1583
+ }
1584
+ if (typeof params['explicit'] != "undefined") {
1585
+ this.isExplicit = params['explicit'];
1586
+ }
1587
+ if (typeof params['obj'] != "undefined") {
1588
+ this.asn1Object = params['obj'];
1589
+ this.setASN1Object(this.isExplicit, this.hT, this.asn1Object);
1590
+ }
1591
+ }
1592
+ };
1593
+ YAHOO.lang.extend(KJUR.asn1.DERTaggedObject, KJUR.asn1.ASN1Object);