qsafe-sdk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of qsafe-sdk might be problematic. Click here for more details.

Files changed (295) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +9 -0
  3. data/README.md +210 -0
  4. data/Rakefile +10 -0
  5. data/docs/APIKeysApi.md +427 -0
  6. data/docs/ApiKey.md +36 -0
  7. data/docs/AuthResponse.md +20 -0
  8. data/docs/AuthResponseData.md +24 -0
  9. data/docs/AuthenticationApi.md +276 -0
  10. data/docs/ChangePassword200Response.md +20 -0
  11. data/docs/ChangePasswordRequest.md +20 -0
  12. data/docs/CreateApiKey201Response.md +22 -0
  13. data/docs/CreateApiKeyRequest.md +28 -0
  14. data/docs/CryptographicOperationsApi.md +331 -0
  15. data/docs/DebugApi.md +84 -0
  16. data/docs/DebugRedisTest200Response.md +30 -0
  17. data/docs/DebugRedisTest200ResponseRateLimitTest.md +22 -0
  18. data/docs/DebugRedisTest200ResponseServicesStatus.md +24 -0
  19. data/docs/DebugRedisTest500Response.md +20 -0
  20. data/docs/DecryptData200Response.md +20 -0
  21. data/docs/DecryptData200ResponseData.md +24 -0
  22. data/docs/DecryptRequest.md +28 -0
  23. data/docs/DecryptRequestEphemeralCrypto.md +24 -0
  24. data/docs/EncryptData200Response.md +20 -0
  25. data/docs/EncryptData200ResponseData.md +28 -0
  26. data/docs/EncryptRequest.md +26 -0
  27. data/docs/EncryptRequestEphemeralStorage.md +22 -0
  28. data/docs/Error.md +28 -0
  29. data/docs/GenerateKeypair201Response.md +22 -0
  30. data/docs/GenerateKeypairRequest.md +24 -0
  31. data/docs/GenerateKeypairRequestKeyPolicy.md +20 -0
  32. data/docs/GetApiKey200Response.md +20 -0
  33. data/docs/GetApiKeyUsage200Response.md +20 -0
  34. data/docs/GetApiKeyUsage200ResponseData.md +22 -0
  35. data/docs/GetApiKeyUsage200ResponseDataDailyUsageInner.md +20 -0
  36. data/docs/GetAuthInfo200Response.md +20 -0
  37. data/docs/GetAuthInfo200ResponseData.md +26 -0
  38. data/docs/GetHealth200Response.md +22 -0
  39. data/docs/GetHealth200ResponseServices.md +22 -0
  40. data/docs/GetHealth200ResponseServicesApi.md +22 -0
  41. data/docs/GetHealth200ResponseServicesEphemeralStorage.md +18 -0
  42. data/docs/GetHealth200ResponseServicesRedis.md +20 -0
  43. data/docs/GetRateLimitStatus200Response.md +20 -0
  44. data/docs/GetRateLimitStatus200ResponseData.md +22 -0
  45. data/docs/GetRateLimitStatus200ResponseDataCurrentUsage.md +22 -0
  46. data/docs/GetRateLimitStatus200ResponseDataLimits.md +22 -0
  47. data/docs/GetRateLimitStatus200ResponseDataResetTimes.md +22 -0
  48. data/docs/HealthApi.md +69 -0
  49. data/docs/Keypair.md +40 -0
  50. data/docs/KeypairsApi.md +341 -0
  51. data/docs/ListApiKeys200Response.md +20 -0
  52. data/docs/ListApiKeys200ResponseData.md +22 -0
  53. data/docs/ListApiKeys200ResponseDataPagination.md +22 -0
  54. data/docs/ListKeypairs200Response.md +20 -0
  55. data/docs/ListKeypairs200ResponseData.md +22 -0
  56. data/docs/ListKeypairs200ResponseDataPagination.md +22 -0
  57. data/docs/LoginRequest.md +20 -0
  58. data/docs/RegisterRequest.md +24 -0
  59. data/docs/RevokeKeypair200Response.md +22 -0
  60. data/docs/RevokeKeypairRequest.md +22 -0
  61. data/docs/RotateApiKey200Response.md +22 -0
  62. data/docs/SignData200Response.md +20 -0
  63. data/docs/SignData200ResponseData.md +28 -0
  64. data/docs/SignRequest.md +26 -0
  65. data/docs/SignRequestEphemeralStorage.md +20 -0
  66. data/docs/UpdateApiKeyRequest.md +28 -0
  67. data/docs/UpdateKeypair200Response.md +20 -0
  68. data/docs/UpdateKeypairRequest.md +24 -0
  69. data/docs/User.md +28 -0
  70. data/docs/UtilitiesApi.md +81 -0
  71. data/docs/VerifyRequest.md +26 -0
  72. data/docs/VerifySignature200Response.md +20 -0
  73. data/docs/VerifySignature200ResponseData.md +26 -0
  74. data/git_push.sh +57 -0
  75. data/lib/qsafe/api/api_keys_api.rb +430 -0
  76. data/lib/qsafe/api/authentication_api.rb +275 -0
  77. data/lib/qsafe/api/cryptographic_operations_api.rb +314 -0
  78. data/lib/qsafe/api/debug_api.rb +79 -0
  79. data/lib/qsafe/api/health_api.rb +79 -0
  80. data/lib/qsafe/api/keypairs_api.rb +345 -0
  81. data/lib/qsafe/api/utilities_api.rb +79 -0
  82. data/lib/qsafe/api_client.rb +394 -0
  83. data/lib/qsafe/api_error.rb +58 -0
  84. data/lib/qsafe/configuration.rb +327 -0
  85. data/lib/qsafe/models/api_key.rb +325 -0
  86. data/lib/qsafe/models/auth_response.rb +223 -0
  87. data/lib/qsafe/models/auth_response_data.rb +242 -0
  88. data/lib/qsafe/models/change_password200_response.rb +223 -0
  89. data/lib/qsafe/models/change_password_request.rb +256 -0
  90. data/lib/qsafe/models/create_api_key201_response.rb +233 -0
  91. data/lib/qsafe/models/create_api_key_request.rb +350 -0
  92. data/lib/qsafe/models/debug_redis_test200_response.rb +304 -0
  93. data/lib/qsafe/models/debug_redis_test200_response_rate_limit_test.rb +232 -0
  94. data/lib/qsafe/models/debug_redis_test200_response_services_status.rb +241 -0
  95. data/lib/qsafe/models/debug_redis_test500_response.rb +223 -0
  96. data/lib/qsafe/models/decrypt_data200_response.rb +223 -0
  97. data/lib/qsafe/models/decrypt_data200_response_data.rb +242 -0
  98. data/lib/qsafe/models/decrypt_request.rb +301 -0
  99. data/lib/qsafe/models/decrypt_request_ephemeral_crypto.rb +276 -0
  100. data/lib/qsafe/models/encrypt_data200_response.rb +223 -0
  101. data/lib/qsafe/models/encrypt_data200_response_data.rb +263 -0
  102. data/lib/qsafe/models/encrypt_request.rb +322 -0
  103. data/lib/qsafe/models/encrypt_request_ephemeral_storage.rb +289 -0
  104. data/lib/qsafe/models/error.rb +275 -0
  105. data/lib/qsafe/models/generate_keypair201_response.rb +233 -0
  106. data/lib/qsafe/models/generate_keypair_request.rb +297 -0
  107. data/lib/qsafe/models/generate_keypair_request_key_policy.rb +266 -0
  108. data/lib/qsafe/models/get_api_key200_response.rb +223 -0
  109. data/lib/qsafe/models/get_api_key_usage200_response.rb +223 -0
  110. data/lib/qsafe/models/get_api_key_usage200_response_data.rb +236 -0
  111. data/lib/qsafe/models/get_api_key_usage200_response_data_daily_usage_inner.rb +223 -0
  112. data/lib/qsafe/models/get_auth_info200_response.rb +223 -0
  113. data/lib/qsafe/models/get_auth_info200_response_data.rb +284 -0
  114. data/lib/qsafe/models/get_health200_response.rb +232 -0
  115. data/lib/qsafe/models/get_health200_response_services.rb +232 -0
  116. data/lib/qsafe/models/get_health200_response_services_api.rb +232 -0
  117. data/lib/qsafe/models/get_health200_response_services_ephemeral_storage.rb +214 -0
  118. data/lib/qsafe/models/get_health200_response_services_redis.rb +223 -0
  119. data/lib/qsafe/models/get_rate_limit_status200_response.rb +223 -0
  120. data/lib/qsafe/models/get_rate_limit_status200_response_data.rb +232 -0
  121. data/lib/qsafe/models/get_rate_limit_status200_response_data_current_usage.rb +232 -0
  122. data/lib/qsafe/models/get_rate_limit_status200_response_data_limits.rb +232 -0
  123. data/lib/qsafe/models/get_rate_limit_status200_response_data_reset_times.rb +232 -0
  124. data/lib/qsafe/models/keypair.rb +379 -0
  125. data/lib/qsafe/models/list_api_keys200_response.rb +223 -0
  126. data/lib/qsafe/models/list_api_keys200_response_data.rb +234 -0
  127. data/lib/qsafe/models/list_api_keys200_response_data_pagination.rb +232 -0
  128. data/lib/qsafe/models/list_keypairs200_response.rb +223 -0
  129. data/lib/qsafe/models/list_keypairs200_response_data.rb +234 -0
  130. data/lib/qsafe/models/list_keypairs200_response_data_pagination.rb +232 -0
  131. data/lib/qsafe/models/login_request.rb +237 -0
  132. data/lib/qsafe/models/register_request.rb +345 -0
  133. data/lib/qsafe/models/revoke_keypair200_response.rb +232 -0
  134. data/lib/qsafe/models/revoke_keypair_request.rb +301 -0
  135. data/lib/qsafe/models/rotate_api_key200_response.rb +232 -0
  136. data/lib/qsafe/models/sign_data200_response.rb +223 -0
  137. data/lib/qsafe/models/sign_data200_response_data.rb +262 -0
  138. data/lib/qsafe/models/sign_request.rb +321 -0
  139. data/lib/qsafe/models/sign_request_ephemeral_storage.rb +279 -0
  140. data/lib/qsafe/models/update_api_key_request.rb +343 -0
  141. data/lib/qsafe/models/update_keypair200_response.rb +223 -0
  142. data/lib/qsafe/models/update_keypair_request.rb +317 -0
  143. data/lib/qsafe/models/user.rb +293 -0
  144. data/lib/qsafe/models/verify_request.rb +389 -0
  145. data/lib/qsafe/models/verify_signature200_response.rb +223 -0
  146. data/lib/qsafe/models/verify_signature200_response_data.rb +251 -0
  147. data/lib/qsafe/version.rb +15 -0
  148. data/lib/qsafe-sdk/api/api_keys_api.rb +430 -0
  149. data/lib/qsafe-sdk/api/authentication_api.rb +275 -0
  150. data/lib/qsafe-sdk/api/cryptographic_operations_api.rb +314 -0
  151. data/lib/qsafe-sdk/api/debug_api.rb +79 -0
  152. data/lib/qsafe-sdk/api/health_api.rb +79 -0
  153. data/lib/qsafe-sdk/api/keypairs_api.rb +345 -0
  154. data/lib/qsafe-sdk/api/utilities_api.rb +79 -0
  155. data/lib/qsafe-sdk/api_client.rb +394 -0
  156. data/lib/qsafe-sdk/api_error.rb +58 -0
  157. data/lib/qsafe-sdk/configuration.rb +327 -0
  158. data/lib/qsafe-sdk/models/api_key.rb +325 -0
  159. data/lib/qsafe-sdk/models/auth_response.rb +223 -0
  160. data/lib/qsafe-sdk/models/auth_response_data.rb +242 -0
  161. data/lib/qsafe-sdk/models/change_password200_response.rb +223 -0
  162. data/lib/qsafe-sdk/models/change_password_request.rb +256 -0
  163. data/lib/qsafe-sdk/models/create_api_key201_response.rb +233 -0
  164. data/lib/qsafe-sdk/models/create_api_key_request.rb +350 -0
  165. data/lib/qsafe-sdk/models/debug_redis_test200_response.rb +304 -0
  166. data/lib/qsafe-sdk/models/debug_redis_test200_response_rate_limit_test.rb +232 -0
  167. data/lib/qsafe-sdk/models/debug_redis_test200_response_services_status.rb +241 -0
  168. data/lib/qsafe-sdk/models/debug_redis_test500_response.rb +223 -0
  169. data/lib/qsafe-sdk/models/decrypt_data200_response.rb +223 -0
  170. data/lib/qsafe-sdk/models/decrypt_data200_response_data.rb +242 -0
  171. data/lib/qsafe-sdk/models/decrypt_request.rb +301 -0
  172. data/lib/qsafe-sdk/models/decrypt_request_ephemeral_crypto.rb +276 -0
  173. data/lib/qsafe-sdk/models/encrypt_data200_response.rb +223 -0
  174. data/lib/qsafe-sdk/models/encrypt_data200_response_data.rb +263 -0
  175. data/lib/qsafe-sdk/models/encrypt_request.rb +322 -0
  176. data/lib/qsafe-sdk/models/encrypt_request_ephemeral_storage.rb +289 -0
  177. data/lib/qsafe-sdk/models/error.rb +275 -0
  178. data/lib/qsafe-sdk/models/generate_keypair201_response.rb +233 -0
  179. data/lib/qsafe-sdk/models/generate_keypair_request.rb +297 -0
  180. data/lib/qsafe-sdk/models/generate_keypair_request_key_policy.rb +266 -0
  181. data/lib/qsafe-sdk/models/get_api_key200_response.rb +223 -0
  182. data/lib/qsafe-sdk/models/get_api_key_usage200_response.rb +223 -0
  183. data/lib/qsafe-sdk/models/get_api_key_usage200_response_data.rb +236 -0
  184. data/lib/qsafe-sdk/models/get_api_key_usage200_response_data_daily_usage_inner.rb +223 -0
  185. data/lib/qsafe-sdk/models/get_auth_info200_response.rb +223 -0
  186. data/lib/qsafe-sdk/models/get_auth_info200_response_data.rb +284 -0
  187. data/lib/qsafe-sdk/models/get_health200_response.rb +232 -0
  188. data/lib/qsafe-sdk/models/get_health200_response_services.rb +232 -0
  189. data/lib/qsafe-sdk/models/get_health200_response_services_api.rb +232 -0
  190. data/lib/qsafe-sdk/models/get_health200_response_services_ephemeral_storage.rb +214 -0
  191. data/lib/qsafe-sdk/models/get_health200_response_services_redis.rb +223 -0
  192. data/lib/qsafe-sdk/models/get_rate_limit_status200_response.rb +223 -0
  193. data/lib/qsafe-sdk/models/get_rate_limit_status200_response_data.rb +232 -0
  194. data/lib/qsafe-sdk/models/get_rate_limit_status200_response_data_current_usage.rb +232 -0
  195. data/lib/qsafe-sdk/models/get_rate_limit_status200_response_data_limits.rb +232 -0
  196. data/lib/qsafe-sdk/models/get_rate_limit_status200_response_data_reset_times.rb +232 -0
  197. data/lib/qsafe-sdk/models/keypair.rb +379 -0
  198. data/lib/qsafe-sdk/models/list_api_keys200_response.rb +223 -0
  199. data/lib/qsafe-sdk/models/list_api_keys200_response_data.rb +234 -0
  200. data/lib/qsafe-sdk/models/list_api_keys200_response_data_pagination.rb +232 -0
  201. data/lib/qsafe-sdk/models/list_keypairs200_response.rb +223 -0
  202. data/lib/qsafe-sdk/models/list_keypairs200_response_data.rb +234 -0
  203. data/lib/qsafe-sdk/models/list_keypairs200_response_data_pagination.rb +232 -0
  204. data/lib/qsafe-sdk/models/login_request.rb +237 -0
  205. data/lib/qsafe-sdk/models/register_request.rb +345 -0
  206. data/lib/qsafe-sdk/models/revoke_keypair200_response.rb +232 -0
  207. data/lib/qsafe-sdk/models/revoke_keypair_request.rb +301 -0
  208. data/lib/qsafe-sdk/models/rotate_api_key200_response.rb +232 -0
  209. data/lib/qsafe-sdk/models/sign_data200_response.rb +223 -0
  210. data/lib/qsafe-sdk/models/sign_data200_response_data.rb +262 -0
  211. data/lib/qsafe-sdk/models/sign_request.rb +321 -0
  212. data/lib/qsafe-sdk/models/sign_request_ephemeral_storage.rb +279 -0
  213. data/lib/qsafe-sdk/models/update_api_key_request.rb +343 -0
  214. data/lib/qsafe-sdk/models/update_keypair200_response.rb +223 -0
  215. data/lib/qsafe-sdk/models/update_keypair_request.rb +317 -0
  216. data/lib/qsafe-sdk/models/user.rb +293 -0
  217. data/lib/qsafe-sdk/models/verify_request.rb +389 -0
  218. data/lib/qsafe-sdk/models/verify_signature200_response.rb +223 -0
  219. data/lib/qsafe-sdk/models/verify_signature200_response_data.rb +251 -0
  220. data/lib/qsafe-sdk/version.rb +15 -0
  221. data/lib/qsafe-sdk.rb +108 -0
  222. data/lib/qsafe.rb +108 -0
  223. data/qsafe-sdk.gemspec +39 -0
  224. data/qsafe.gemspec +39 -0
  225. data/spec/api/api_keys_api_spec.rb +105 -0
  226. data/spec/api/authentication_api_spec.rb +78 -0
  227. data/spec/api/cryptographic_operations_api_spec.rb +85 -0
  228. data/spec/api/debug_api_spec.rb +46 -0
  229. data/spec/api/health_api_spec.rb +46 -0
  230. data/spec/api/keypairs_api_spec.rb +89 -0
  231. data/spec/api/utilities_api_spec.rb +46 -0
  232. data/spec/models/api_key_spec.rb +94 -0
  233. data/spec/models/auth_response_data_spec.rb +54 -0
  234. data/spec/models/auth_response_spec.rb +42 -0
  235. data/spec/models/change_password200_response_spec.rb +42 -0
  236. data/spec/models/change_password_request_spec.rb +42 -0
  237. data/spec/models/create_api_key201_response_spec.rb +48 -0
  238. data/spec/models/create_api_key_request_spec.rb +70 -0
  239. data/spec/models/debug_redis_test200_response_rate_limit_test_spec.rb +48 -0
  240. data/spec/models/debug_redis_test200_response_services_status_spec.rb +54 -0
  241. data/spec/models/debug_redis_test200_response_spec.rb +76 -0
  242. data/spec/models/debug_redis_test500_response_spec.rb +42 -0
  243. data/spec/models/decrypt_data200_response_data_spec.rb +54 -0
  244. data/spec/models/decrypt_data200_response_spec.rb +42 -0
  245. data/spec/models/decrypt_request_ephemeral_crypto_spec.rb +54 -0
  246. data/spec/models/decrypt_request_spec.rb +66 -0
  247. data/spec/models/encrypt_data200_response_data_spec.rb +66 -0
  248. data/spec/models/encrypt_data200_response_spec.rb +42 -0
  249. data/spec/models/encrypt_request_ephemeral_storage_spec.rb +48 -0
  250. data/spec/models/encrypt_request_spec.rb +64 -0
  251. data/spec/models/error_spec.rb +66 -0
  252. data/spec/models/generate_keypair201_response_spec.rb +48 -0
  253. data/spec/models/generate_keypair_request_key_policy_spec.rb +46 -0
  254. data/spec/models/generate_keypair_request_spec.rb +62 -0
  255. data/spec/models/get_api_key200_response_spec.rb +42 -0
  256. data/spec/models/get_api_key_usage200_response_data_daily_usage_inner_spec.rb +42 -0
  257. data/spec/models/get_api_key_usage200_response_data_spec.rb +48 -0
  258. data/spec/models/get_api_key_usage200_response_spec.rb +42 -0
  259. data/spec/models/get_auth_info200_response_data_spec.rb +64 -0
  260. data/spec/models/get_auth_info200_response_spec.rb +42 -0
  261. data/spec/models/get_health200_response_services_api_spec.rb +48 -0
  262. data/spec/models/get_health200_response_services_ephemeral_storage_spec.rb +36 -0
  263. data/spec/models/get_health200_response_services_redis_spec.rb +42 -0
  264. data/spec/models/get_health200_response_services_spec.rb +48 -0
  265. data/spec/models/get_health200_response_spec.rb +48 -0
  266. data/spec/models/get_rate_limit_status200_response_data_current_usage_spec.rb +48 -0
  267. data/spec/models/get_rate_limit_status200_response_data_limits_spec.rb +48 -0
  268. data/spec/models/get_rate_limit_status200_response_data_reset_times_spec.rb +48 -0
  269. data/spec/models/get_rate_limit_status200_response_data_spec.rb +48 -0
  270. data/spec/models/get_rate_limit_status200_response_spec.rb +42 -0
  271. data/spec/models/keypair_spec.rb +114 -0
  272. data/spec/models/list_api_keys200_response_data_pagination_spec.rb +48 -0
  273. data/spec/models/list_api_keys200_response_data_spec.rb +48 -0
  274. data/spec/models/list_api_keys200_response_spec.rb +42 -0
  275. data/spec/models/list_keypairs200_response_data_pagination_spec.rb +48 -0
  276. data/spec/models/list_keypairs200_response_data_spec.rb +48 -0
  277. data/spec/models/list_keypairs200_response_spec.rb +42 -0
  278. data/spec/models/login_request_spec.rb +42 -0
  279. data/spec/models/register_request_spec.rb +54 -0
  280. data/spec/models/revoke_keypair200_response_spec.rb +48 -0
  281. data/spec/models/revoke_keypair_request_spec.rb +52 -0
  282. data/spec/models/rotate_api_key200_response_spec.rb +48 -0
  283. data/spec/models/sign_data200_response_data_spec.rb +66 -0
  284. data/spec/models/sign_data200_response_spec.rb +42 -0
  285. data/spec/models/sign_request_ephemeral_storage_spec.rb +42 -0
  286. data/spec/models/sign_request_spec.rb +64 -0
  287. data/spec/models/update_api_key_request_spec.rb +70 -0
  288. data/spec/models/update_keypair200_response_spec.rb +42 -0
  289. data/spec/models/update_keypair_request_spec.rb +58 -0
  290. data/spec/models/user_spec.rb +70 -0
  291. data/spec/models/verify_request_spec.rb +64 -0
  292. data/spec/models/verify_signature200_response_data_spec.rb +60 -0
  293. data/spec/models/verify_signature200_response_spec.rb +42 -0
  294. data/spec/spec_helper.rb +111 -0
  295. metadata +453 -0
@@ -0,0 +1,251 @@
1
+ =begin
2
+ #QSafe PQC API
3
+
4
+ #Post-quantum cryptography SaaS API supporting ML-KEM (Kyber) and ML-DSA (Dilithium) algorithms. Provides keypair management and cryptographic operations (encrypt, decrypt, sign, verify). ## Authentication - **JWT Bearer Token** — user-based auth, obtained from `/auth/login` or `/auth/register` - **API Key (header)** — programmatic access via `X-API-Key` header - **API Key (query)** — programmatic access via `?api_key=` query parameter ## Quick Start 1. Register → `POST /auth/register` 2. Login → `POST /auth/login` → copy `data.token` 3. Generate keypair → `POST /generate-keypair` 4. Encrypt / Sign with the keypair ID
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: rushikesh.n.kakadiya@gmail.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.9.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module QSafe
17
+ class VerifySignature200ResponseData
18
+ # true = signature is authentic
19
+ attr_accessor :valid
20
+
21
+ attr_accessor :algorithm
22
+
23
+ attr_accessor :keypair_id
24
+
25
+ attr_accessor :hash_algorithm
26
+
27
+ attr_accessor :verification_timestamp
28
+
29
+ # Attribute mapping from ruby-style variable name to JSON key.
30
+ def self.attribute_map
31
+ {
32
+ :'valid' => :'valid',
33
+ :'algorithm' => :'algorithm',
34
+ :'keypair_id' => :'keypair_id',
35
+ :'hash_algorithm' => :'hash_algorithm',
36
+ :'verification_timestamp' => :'verification_timestamp'
37
+ }
38
+ end
39
+
40
+ # Returns all the JSON keys this model knows about
41
+ def self.acceptable_attributes
42
+ attribute_map.values
43
+ end
44
+
45
+ # Attribute type mapping.
46
+ def self.openapi_types
47
+ {
48
+ :'valid' => :'Boolean',
49
+ :'algorithm' => :'String',
50
+ :'keypair_id' => :'String',
51
+ :'hash_algorithm' => :'String',
52
+ :'verification_timestamp' => :'Time'
53
+ }
54
+ end
55
+
56
+ # List of attributes with nullable: true
57
+ def self.openapi_nullable
58
+ Set.new([
59
+ ])
60
+ end
61
+
62
+ # Initializes the object
63
+ # @param [Hash] attributes Model attributes in the form of hash
64
+ def initialize(attributes = {})
65
+ if (!attributes.is_a?(Hash))
66
+ fail ArgumentError, "The input argument (attributes) must be a hash in `QSafe::VerifySignature200ResponseData` initialize method"
67
+ end
68
+
69
+ # check to see if the attribute exists and convert string to symbol for hash key
70
+ attributes = attributes.each_with_object({}) { |(k, v), h|
71
+ if (!self.class.attribute_map.key?(k.to_sym))
72
+ fail ArgumentError, "`#{k}` is not a valid attribute in `QSafe::VerifySignature200ResponseData`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
73
+ end
74
+ h[k.to_sym] = v
75
+ }
76
+
77
+ if attributes.key?(:'valid')
78
+ self.valid = attributes[:'valid']
79
+ end
80
+
81
+ if attributes.key?(:'algorithm')
82
+ self.algorithm = attributes[:'algorithm']
83
+ end
84
+
85
+ if attributes.key?(:'keypair_id')
86
+ self.keypair_id = attributes[:'keypair_id']
87
+ end
88
+
89
+ if attributes.key?(:'hash_algorithm')
90
+ self.hash_algorithm = attributes[:'hash_algorithm']
91
+ end
92
+
93
+ if attributes.key?(:'verification_timestamp')
94
+ self.verification_timestamp = attributes[:'verification_timestamp']
95
+ end
96
+ end
97
+
98
+ # Show invalid properties with the reasons. Usually used together with valid?
99
+ # @return Array for valid properties with the reasons
100
+ def list_invalid_properties
101
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
102
+ invalid_properties = Array.new
103
+ invalid_properties
104
+ end
105
+
106
+ # Check to see if the all the properties in the model are valid
107
+ # @return true if the model is valid
108
+ def valid?
109
+ warn '[DEPRECATED] the `valid?` method is obsolete'
110
+ true
111
+ end
112
+
113
+ # Checks equality by comparing each attribute.
114
+ # @param [Object] Object to be compared
115
+ def ==(o)
116
+ return true if self.equal?(o)
117
+ self.class == o.class &&
118
+ valid == o.valid &&
119
+ algorithm == o.algorithm &&
120
+ keypair_id == o.keypair_id &&
121
+ hash_algorithm == o.hash_algorithm &&
122
+ verification_timestamp == o.verification_timestamp
123
+ end
124
+
125
+ # @see the `==` method
126
+ # @param [Object] Object to be compared
127
+ def eql?(o)
128
+ self == o
129
+ end
130
+
131
+ # Calculates hash code according to all attributes.
132
+ # @return [Integer] Hash code
133
+ def hash
134
+ [valid, algorithm, keypair_id, hash_algorithm, verification_timestamp].hash
135
+ end
136
+
137
+ # Builds the object from hash
138
+ # @param [Hash] attributes Model attributes in the form of hash
139
+ # @return [Object] Returns the model itself
140
+ def self.build_from_hash(attributes)
141
+ return nil unless attributes.is_a?(Hash)
142
+ attributes = attributes.transform_keys(&:to_sym)
143
+ transformed_hash = {}
144
+ openapi_types.each_pair do |key, type|
145
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
146
+ transformed_hash["#{key}"] = nil
147
+ elsif type =~ /\AArray<(.*)>/i
148
+ # check to ensure the input is an array given that the attribute
149
+ # is documented as an array but the input is not
150
+ if attributes[attribute_map[key]].is_a?(Array)
151
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
152
+ end
153
+ elsif !attributes[attribute_map[key]].nil?
154
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
155
+ end
156
+ end
157
+ new(transformed_hash)
158
+ end
159
+
160
+ # Deserializes the data based on type
161
+ # @param string type Data type
162
+ # @param string value Value to be deserialized
163
+ # @return [Object] Deserialized data
164
+ def self._deserialize(type, value)
165
+ case type.to_sym
166
+ when :Time
167
+ Time.parse(value)
168
+ when :Date
169
+ Date.parse(value)
170
+ when :String
171
+ value.to_s
172
+ when :Integer
173
+ value.to_i
174
+ when :Float
175
+ value.to_f
176
+ when :Boolean
177
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
178
+ true
179
+ else
180
+ false
181
+ end
182
+ when :Object
183
+ # generic object (usually a Hash), return directly
184
+ value
185
+ when /\AArray<(?<inner_type>.+)>\z/
186
+ inner_type = Regexp.last_match[:inner_type]
187
+ value.map { |v| _deserialize(inner_type, v) }
188
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
189
+ k_type = Regexp.last_match[:k_type]
190
+ v_type = Regexp.last_match[:v_type]
191
+ {}.tap do |hash|
192
+ value.each do |k, v|
193
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
194
+ end
195
+ end
196
+ else # model
197
+ # models (e.g. Pet) or oneOf
198
+ klass = QSafe.const_get(type)
199
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
200
+ end
201
+ end
202
+
203
+ # Returns the string representation of the object
204
+ # @return [String] String presentation of the object
205
+ def to_s
206
+ to_hash.to_s
207
+ end
208
+
209
+ # to_body is an alias to to_hash (backward compatibility)
210
+ # @return [Hash] Returns the object in the form of hash
211
+ def to_body
212
+ to_hash
213
+ end
214
+
215
+ # Returns the object in the form of hash
216
+ # @return [Hash] Returns the object in the form of hash
217
+ def to_hash
218
+ hash = {}
219
+ self.class.attribute_map.each_pair do |attr, param|
220
+ value = self.send(attr)
221
+ if value.nil?
222
+ is_nullable = self.class.openapi_nullable.include?(attr)
223
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
224
+ end
225
+
226
+ hash[param] = _to_hash(value)
227
+ end
228
+ hash
229
+ end
230
+
231
+ # Outputs non-array value in the form of hash
232
+ # For object, use to_hash. Otherwise, just return the value
233
+ # @param [Object] value Any valid value
234
+ # @return [Hash] Returns the value in the form of hash
235
+ def _to_hash(value)
236
+ if value.is_a?(Array)
237
+ value.compact.map { |v| _to_hash(v) }
238
+ elsif value.is_a?(Hash)
239
+ {}.tap do |hash|
240
+ value.each { |k, v| hash[k] = _to_hash(v) }
241
+ end
242
+ elsif value.respond_to? :to_hash
243
+ value.to_hash
244
+ else
245
+ value
246
+ end
247
+ end
248
+
249
+ end
250
+
251
+ end
@@ -0,0 +1,15 @@
1
+ =begin
2
+ #QSafe PQC API
3
+
4
+ #Post-quantum cryptography SaaS API supporting ML-KEM (Kyber) and ML-DSA (Dilithium) algorithms. Provides keypair management and cryptographic operations (encrypt, decrypt, sign, verify). ## Authentication - **JWT Bearer Token** — user-based auth, obtained from `/auth/login` or `/auth/register` - **API Key (header)** — programmatic access via `X-API-Key` header - **API Key (query)** — programmatic access via `?api_key=` query parameter ## Quick Start 1. Register → `POST /auth/register` 2. Login → `POST /auth/login` → copy `data.token` 3. Generate keypair → `POST /generate-keypair` 4. Encrypt / Sign with the keypair ID
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: rushikesh.n.kakadiya@gmail.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.9.0
10
+
11
+ =end
12
+
13
+ module QSafe
14
+ VERSION = '1.0.0'
15
+ end
data/lib/qsafe-sdk.rb ADDED
@@ -0,0 +1,108 @@
1
+ =begin
2
+ #QSafe PQC API
3
+
4
+ #Post-quantum cryptography SaaS API supporting ML-KEM (Kyber) and ML-DSA (Dilithium) algorithms. Provides keypair management and cryptographic operations (encrypt, decrypt, sign, verify). ## Authentication - **JWT Bearer Token** — user-based auth, obtained from `/auth/login` or `/auth/register` - **API Key (header)** — programmatic access via `X-API-Key` header - **API Key (query)** — programmatic access via `?api_key=` query parameter ## Quick Start 1. Register → `POST /auth/register` 2. Login → `POST /auth/login` → copy `data.token` 3. Generate keypair → `POST /generate-keypair` 4. Encrypt / Sign with the keypair ID
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: rushikesh.n.kakadiya@gmail.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.9.0
10
+
11
+ =end
12
+
13
+ # Common files
14
+ require 'qsafe-sdk/api_client'
15
+ require 'qsafe-sdk/api_error'
16
+ require 'qsafe-sdk/version'
17
+ require 'qsafe-sdk/configuration'
18
+
19
+ # Models
20
+ require 'qsafe-sdk/models/api_key'
21
+ require 'qsafe-sdk/models/auth_response'
22
+ require 'qsafe-sdk/models/auth_response_data'
23
+ require 'qsafe-sdk/models/change_password200_response'
24
+ require 'qsafe-sdk/models/change_password_request'
25
+ require 'qsafe-sdk/models/create_api_key201_response'
26
+ require 'qsafe-sdk/models/create_api_key_request'
27
+ require 'qsafe-sdk/models/debug_redis_test200_response'
28
+ require 'qsafe-sdk/models/debug_redis_test200_response_rate_limit_test'
29
+ require 'qsafe-sdk/models/debug_redis_test200_response_services_status'
30
+ require 'qsafe-sdk/models/debug_redis_test500_response'
31
+ require 'qsafe-sdk/models/decrypt_data200_response'
32
+ require 'qsafe-sdk/models/decrypt_data200_response_data'
33
+ require 'qsafe-sdk/models/decrypt_request'
34
+ require 'qsafe-sdk/models/decrypt_request_ephemeral_crypto'
35
+ require 'qsafe-sdk/models/encrypt_data200_response'
36
+ require 'qsafe-sdk/models/encrypt_data200_response_data'
37
+ require 'qsafe-sdk/models/encrypt_request'
38
+ require 'qsafe-sdk/models/encrypt_request_ephemeral_storage'
39
+ require 'qsafe-sdk/models/error'
40
+ require 'qsafe-sdk/models/generate_keypair201_response'
41
+ require 'qsafe-sdk/models/generate_keypair_request'
42
+ require 'qsafe-sdk/models/generate_keypair_request_key_policy'
43
+ require 'qsafe-sdk/models/get_api_key200_response'
44
+ require 'qsafe-sdk/models/get_api_key_usage200_response'
45
+ require 'qsafe-sdk/models/get_api_key_usage200_response_data'
46
+ require 'qsafe-sdk/models/get_api_key_usage200_response_data_daily_usage_inner'
47
+ require 'qsafe-sdk/models/get_auth_info200_response'
48
+ require 'qsafe-sdk/models/get_auth_info200_response_data'
49
+ require 'qsafe-sdk/models/get_health200_response'
50
+ require 'qsafe-sdk/models/get_health200_response_services'
51
+ require 'qsafe-sdk/models/get_health200_response_services_api'
52
+ require 'qsafe-sdk/models/get_health200_response_services_ephemeral_storage'
53
+ require 'qsafe-sdk/models/get_health200_response_services_redis'
54
+ require 'qsafe-sdk/models/get_rate_limit_status200_response'
55
+ require 'qsafe-sdk/models/get_rate_limit_status200_response_data'
56
+ require 'qsafe-sdk/models/get_rate_limit_status200_response_data_current_usage'
57
+ require 'qsafe-sdk/models/get_rate_limit_status200_response_data_limits'
58
+ require 'qsafe-sdk/models/get_rate_limit_status200_response_data_reset_times'
59
+ require 'qsafe-sdk/models/keypair'
60
+ require 'qsafe-sdk/models/list_api_keys200_response'
61
+ require 'qsafe-sdk/models/list_api_keys200_response_data'
62
+ require 'qsafe-sdk/models/list_api_keys200_response_data_pagination'
63
+ require 'qsafe-sdk/models/list_keypairs200_response'
64
+ require 'qsafe-sdk/models/list_keypairs200_response_data'
65
+ require 'qsafe-sdk/models/list_keypairs200_response_data_pagination'
66
+ require 'qsafe-sdk/models/login_request'
67
+ require 'qsafe-sdk/models/register_request'
68
+ require 'qsafe-sdk/models/revoke_keypair200_response'
69
+ require 'qsafe-sdk/models/revoke_keypair_request'
70
+ require 'qsafe-sdk/models/rotate_api_key200_response'
71
+ require 'qsafe-sdk/models/sign_data200_response'
72
+ require 'qsafe-sdk/models/sign_data200_response_data'
73
+ require 'qsafe-sdk/models/sign_request'
74
+ require 'qsafe-sdk/models/sign_request_ephemeral_storage'
75
+ require 'qsafe-sdk/models/update_api_key_request'
76
+ require 'qsafe-sdk/models/update_keypair200_response'
77
+ require 'qsafe-sdk/models/update_keypair_request'
78
+ require 'qsafe-sdk/models/user'
79
+ require 'qsafe-sdk/models/verify_request'
80
+ require 'qsafe-sdk/models/verify_signature200_response'
81
+ require 'qsafe-sdk/models/verify_signature200_response_data'
82
+
83
+ # APIs
84
+ require 'qsafe-sdk/api/api_keys_api'
85
+ require 'qsafe-sdk/api/authentication_api'
86
+ require 'qsafe-sdk/api/cryptographic_operations_api'
87
+ require 'qsafe-sdk/api/debug_api'
88
+ require 'qsafe-sdk/api/health_api'
89
+ require 'qsafe-sdk/api/keypairs_api'
90
+ require 'qsafe-sdk/api/utilities_api'
91
+
92
+ module QSafe
93
+ class << self
94
+ # Customize default settings for the SDK using block.
95
+ # QSafe.configure do |config|
96
+ # config.username = "xxx"
97
+ # config.password = "xxx"
98
+ # end
99
+ # If no block given, return the default Configuration object.
100
+ def configure
101
+ if block_given?
102
+ yield(Configuration.default)
103
+ else
104
+ Configuration.default
105
+ end
106
+ end
107
+ end
108
+ end
data/lib/qsafe.rb ADDED
@@ -0,0 +1,108 @@
1
+ =begin
2
+ #QSafe PQC API
3
+
4
+ #Post-quantum cryptography SaaS API supporting ML-KEM (Kyber) and ML-DSA (Dilithium) algorithms. Provides keypair management and cryptographic operations (encrypt, decrypt, sign, verify). ## Authentication - **JWT Bearer Token** — user-based auth, obtained from `/auth/login` or `/auth/register` - **API Key (header)** — programmatic access via `X-API-Key` header - **API Key (query)** — programmatic access via `?api_key=` query parameter ## Quick Start 1. Register → `POST /auth/register` 2. Login → `POST /auth/login` → copy `data.token` 3. Generate keypair → `POST /generate-keypair` 4. Encrypt / Sign with the keypair ID
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: rushikesh.n.kakadiya@gmail.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.9.0
10
+
11
+ =end
12
+
13
+ # Common files
14
+ require 'qsafe/api_client'
15
+ require 'qsafe/api_error'
16
+ require 'qsafe/version'
17
+ require 'qsafe/configuration'
18
+
19
+ # Models
20
+ require 'qsafe/models/api_key'
21
+ require 'qsafe/models/auth_response'
22
+ require 'qsafe/models/auth_response_data'
23
+ require 'qsafe/models/change_password200_response'
24
+ require 'qsafe/models/change_password_request'
25
+ require 'qsafe/models/create_api_key201_response'
26
+ require 'qsafe/models/create_api_key_request'
27
+ require 'qsafe/models/debug_redis_test200_response'
28
+ require 'qsafe/models/debug_redis_test200_response_rate_limit_test'
29
+ require 'qsafe/models/debug_redis_test200_response_services_status'
30
+ require 'qsafe/models/debug_redis_test500_response'
31
+ require 'qsafe/models/decrypt_data200_response'
32
+ require 'qsafe/models/decrypt_data200_response_data'
33
+ require 'qsafe/models/decrypt_request'
34
+ require 'qsafe/models/decrypt_request_ephemeral_crypto'
35
+ require 'qsafe/models/encrypt_data200_response'
36
+ require 'qsafe/models/encrypt_data200_response_data'
37
+ require 'qsafe/models/encrypt_request'
38
+ require 'qsafe/models/encrypt_request_ephemeral_storage'
39
+ require 'qsafe/models/error'
40
+ require 'qsafe/models/generate_keypair201_response'
41
+ require 'qsafe/models/generate_keypair_request'
42
+ require 'qsafe/models/generate_keypair_request_key_policy'
43
+ require 'qsafe/models/get_api_key200_response'
44
+ require 'qsafe/models/get_api_key_usage200_response'
45
+ require 'qsafe/models/get_api_key_usage200_response_data'
46
+ require 'qsafe/models/get_api_key_usage200_response_data_daily_usage_inner'
47
+ require 'qsafe/models/get_auth_info200_response'
48
+ require 'qsafe/models/get_auth_info200_response_data'
49
+ require 'qsafe/models/get_health200_response'
50
+ require 'qsafe/models/get_health200_response_services'
51
+ require 'qsafe/models/get_health200_response_services_api'
52
+ require 'qsafe/models/get_health200_response_services_ephemeral_storage'
53
+ require 'qsafe/models/get_health200_response_services_redis'
54
+ require 'qsafe/models/get_rate_limit_status200_response'
55
+ require 'qsafe/models/get_rate_limit_status200_response_data'
56
+ require 'qsafe/models/get_rate_limit_status200_response_data_current_usage'
57
+ require 'qsafe/models/get_rate_limit_status200_response_data_limits'
58
+ require 'qsafe/models/get_rate_limit_status200_response_data_reset_times'
59
+ require 'qsafe/models/keypair'
60
+ require 'qsafe/models/list_api_keys200_response'
61
+ require 'qsafe/models/list_api_keys200_response_data'
62
+ require 'qsafe/models/list_api_keys200_response_data_pagination'
63
+ require 'qsafe/models/list_keypairs200_response'
64
+ require 'qsafe/models/list_keypairs200_response_data'
65
+ require 'qsafe/models/list_keypairs200_response_data_pagination'
66
+ require 'qsafe/models/login_request'
67
+ require 'qsafe/models/register_request'
68
+ require 'qsafe/models/revoke_keypair200_response'
69
+ require 'qsafe/models/revoke_keypair_request'
70
+ require 'qsafe/models/rotate_api_key200_response'
71
+ require 'qsafe/models/sign_data200_response'
72
+ require 'qsafe/models/sign_data200_response_data'
73
+ require 'qsafe/models/sign_request'
74
+ require 'qsafe/models/sign_request_ephemeral_storage'
75
+ require 'qsafe/models/update_api_key_request'
76
+ require 'qsafe/models/update_keypair200_response'
77
+ require 'qsafe/models/update_keypair_request'
78
+ require 'qsafe/models/user'
79
+ require 'qsafe/models/verify_request'
80
+ require 'qsafe/models/verify_signature200_response'
81
+ require 'qsafe/models/verify_signature200_response_data'
82
+
83
+ # APIs
84
+ require 'qsafe/api/api_keys_api'
85
+ require 'qsafe/api/authentication_api'
86
+ require 'qsafe/api/cryptographic_operations_api'
87
+ require 'qsafe/api/debug_api'
88
+ require 'qsafe/api/health_api'
89
+ require 'qsafe/api/keypairs_api'
90
+ require 'qsafe/api/utilities_api'
91
+
92
+ module QSafe
93
+ class << self
94
+ # Customize default settings for the SDK using block.
95
+ # QSafe.configure do |config|
96
+ # config.username = "xxx"
97
+ # config.password = "xxx"
98
+ # end
99
+ # If no block given, return the default Configuration object.
100
+ def configure
101
+ if block_given?
102
+ yield(Configuration.default)
103
+ else
104
+ Configuration.default
105
+ end
106
+ end
107
+ end
108
+ end
data/qsafe-sdk.gemspec ADDED
@@ -0,0 +1,39 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ =begin
4
+ #QSafe PQC API
5
+
6
+ #Post-quantum cryptography SaaS API supporting ML-KEM (Kyber) and ML-DSA (Dilithium) algorithms. Provides keypair management and cryptographic operations (encrypt, decrypt, sign, verify). ## Authentication - **JWT Bearer Token** — user-based auth, obtained from `/auth/login` or `/auth/register` - **API Key (header)** — programmatic access via `X-API-Key` header - **API Key (query)** — programmatic access via `?api_key=` query parameter ## Quick Start 1. Register → `POST /auth/register` 2. Login → `POST /auth/login` → copy `data.token` 3. Generate keypair → `POST /generate-keypair` 4. Encrypt / Sign with the keypair ID
7
+
8
+ The version of the OpenAPI document: 1.0.0
9
+ Contact: rushikesh.n.kakadiya@gmail.com
10
+ Generated by: https://openapi-generator.tech
11
+ Generator version: 7.9.0
12
+
13
+ =end
14
+
15
+ $:.push File.expand_path("../lib", __FILE__)
16
+ require "qsafe-sdk/version"
17
+
18
+ Gem::Specification.new do |s|
19
+ s.name = "qsafe-sdk"
20
+ s.version = QSafe::VERSION
21
+ s.platform = Gem::Platform::RUBY
22
+ s.authors = ["OpenAPI-Generator"]
23
+ s.email = ["rushikesh.n.kakadiya@gmail.com"]
24
+ s.homepage = "https://openapi-generator.tech"
25
+ s.summary = "QSafe PQC API Ruby Gem"
26
+ s.description = "Post-quantum cryptography SaaS API supporting ML-KEM (Kyber) and ML-DSA (Dilithium) algorithms. Provides keypair management and cryptographic operations (encrypt, decrypt, sign, verify). ## Authentication - **JWT Bearer Token** — user-based auth, obtained from `/auth/login` or `/auth/register` - **API Key (header)** — programmatic access via `X-API-Key` header - **API Key (query)** — programmatic access via `?api_key=` query parameter ## Quick Start 1. Register → `POST /auth/register` 2. Login → `POST /auth/login` → copy `data.token` 3. Generate keypair → `POST /generate-keypair` 4. Encrypt / Sign with the keypair ID "
27
+ s.license = "MIT"
28
+ s.required_ruby_version = ">= 2.7"
29
+ s.metadata = {}
30
+
31
+ s.add_runtime_dependency 'typhoeus', '~> 1.0', '>= 1.0.1'
32
+
33
+ s.add_development_dependency 'rspec', '~> 3.6', '>= 3.6.0'
34
+
35
+ s.files = `find *`.split("\n").uniq.sort.select { |f| !f.empty? }
36
+ s.test_files = `find spec/*`.split("\n")
37
+ s.executables = []
38
+ s.require_paths = ["lib"]
39
+ end
data/qsafe.gemspec ADDED
@@ -0,0 +1,39 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ =begin
4
+ #QSafe PQC API
5
+
6
+ #Post-quantum cryptography SaaS API supporting ML-KEM (Kyber) and ML-DSA (Dilithium) algorithms. Provides keypair management and cryptographic operations (encrypt, decrypt, sign, verify). ## Authentication - **JWT Bearer Token** — user-based auth, obtained from `/auth/login` or `/auth/register` - **API Key (header)** — programmatic access via `X-API-Key` header - **API Key (query)** — programmatic access via `?api_key=` query parameter ## Quick Start 1. Register → `POST /auth/register` 2. Login → `POST /auth/login` → copy `data.token` 3. Generate keypair → `POST /generate-keypair` 4. Encrypt / Sign with the keypair ID
7
+
8
+ The version of the OpenAPI document: 1.0.0
9
+ Contact: rushikesh.n.kakadiya@gmail.com
10
+ Generated by: https://openapi-generator.tech
11
+ Generator version: 7.9.0
12
+
13
+ =end
14
+
15
+ $:.push File.expand_path("../lib", __FILE__)
16
+ require "qsafe/version"
17
+
18
+ Gem::Specification.new do |s|
19
+ s.name = "qsafe"
20
+ s.version = QSafe::VERSION
21
+ s.platform = Gem::Platform::RUBY
22
+ s.authors = ["OpenAPI-Generator"]
23
+ s.email = ["rushikesh.n.kakadiya@gmail.com"]
24
+ s.homepage = "https://openapi-generator.tech"
25
+ s.summary = "QSafe PQC API Ruby Gem"
26
+ s.description = "Post-quantum cryptography SaaS API supporting ML-KEM (Kyber) and ML-DSA (Dilithium) algorithms. Provides keypair management and cryptographic operations (encrypt, decrypt, sign, verify). ## Authentication - **JWT Bearer Token** — user-based auth, obtained from `/auth/login` or `/auth/register` - **API Key (header)** — programmatic access via `X-API-Key` header - **API Key (query)** — programmatic access via `?api_key=` query parameter ## Quick Start 1. Register → `POST /auth/register` 2. Login → `POST /auth/login` → copy `data.token` 3. Generate keypair → `POST /generate-keypair` 4. Encrypt / Sign with the keypair ID "
27
+ s.license = "MIT"
28
+ s.required_ruby_version = ">= 2.7"
29
+ s.metadata = {}
30
+
31
+ s.add_runtime_dependency 'typhoeus', '~> 1.0', '>= 1.0.1'
32
+
33
+ s.add_development_dependency 'rspec', '~> 3.6', '>= 3.6.0'
34
+
35
+ s.files = `find *`.split("\n").uniq.sort.select { |f| !f.empty? }
36
+ s.test_files = `find spec/*`.split("\n")
37
+ s.executables = []
38
+ s.require_paths = ["lib"]
39
+ end
@@ -0,0 +1,105 @@
1
+ =begin
2
+ #QSafe PQC API
3
+
4
+ #Post-quantum cryptography SaaS API supporting ML-KEM (Kyber) and ML-DSA (Dilithium) algorithms. Provides keypair management and cryptographic operations (encrypt, decrypt, sign, verify). ## Authentication - **JWT Bearer Token** — user-based auth, obtained from `/auth/login` or `/auth/register` - **API Key (header)** — programmatic access via `X-API-Key` header - **API Key (query)** — programmatic access via `?api_key=` query parameter ## Quick Start 1. Register → `POST /auth/register` 2. Login → `POST /auth/login` → copy `data.token` 3. Generate keypair → `POST /generate-keypair` 4. Encrypt / Sign with the keypair ID
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: support@qsafeapi.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.9.0
10
+
11
+ =end
12
+
13
+ require 'spec_helper'
14
+ require 'json'
15
+
16
+ # Unit tests for QSafe::APIKeysApi
17
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
18
+ # Please update as you see appropriate
19
+ describe 'APIKeysApi' do
20
+ before do
21
+ # run before each test
22
+ @api_instance = QSafe::APIKeysApi.new
23
+ end
24
+
25
+ after do
26
+ # run after each test
27
+ end
28
+
29
+ describe 'test an instance of APIKeysApi' do
30
+ it 'should create an instance of APIKeysApi' do
31
+ expect(@api_instance).to be_instance_of(QSafe::APIKeysApi)
32
+ end
33
+ end
34
+
35
+ # unit tests for create_api_key
36
+ # Create API key (JWT only)
37
+ # @param create_api_key_request
38
+ # @param [Hash] opts the optional parameters
39
+ # @return [CreateApiKey201Response]
40
+ describe 'create_api_key test' do
41
+ it 'should work' do
42
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
43
+ end
44
+ end
45
+
46
+ # unit tests for get_api_key
47
+ # Get API key details (JWT only)
48
+ # @param key_id API key identifier
49
+ # @param [Hash] opts the optional parameters
50
+ # @return [GetApiKey200Response]
51
+ describe 'get_api_key test' do
52
+ it 'should work' do
53
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
54
+ end
55
+ end
56
+
57
+ # unit tests for get_api_key_usage
58
+ # Get API key usage stats (JWT only)
59
+ # @param key_id API key identifier
60
+ # @param [Hash] opts the optional parameters
61
+ # @option opts [String] :time_range
62
+ # @return [GetApiKeyUsage200Response]
63
+ describe 'get_api_key_usage test' do
64
+ it 'should work' do
65
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
66
+ end
67
+ end
68
+
69
+ # unit tests for list_api_keys
70
+ # List API keys (JWT only)
71
+ # @param [Hash] opts the optional parameters
72
+ # @option opts [Integer] :page
73
+ # @option opts [Integer] :limit
74
+ # @option opts [String] :status
75
+ # @return [ListApiKeys200Response]
76
+ describe 'list_api_keys test' do
77
+ it 'should work' do
78
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
79
+ end
80
+ end
81
+
82
+ # unit tests for rotate_api_key
83
+ # Rotate API key — generates new key value (JWT only)
84
+ # @param key_id API key identifier
85
+ # @param [Hash] opts the optional parameters
86
+ # @return [RotateApiKey200Response]
87
+ describe 'rotate_api_key test' do
88
+ it 'should work' do
89
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
90
+ end
91
+ end
92
+
93
+ # unit tests for update_api_key
94
+ # Update API key (JWT only)
95
+ # @param key_id API key identifier
96
+ # @param update_api_key_request
97
+ # @param [Hash] opts the optional parameters
98
+ # @return [GetApiKey200Response]
99
+ describe 'update_api_key test' do
100
+ it 'should work' do
101
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
102
+ end
103
+ end
104
+
105
+ end