smart-id-ruby-client 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +3 -0
  3. data/.rubocop.yml +14 -0
  4. data/CHANGELOG.md +13 -0
  5. data/CODE_OF_CONDUCT.md +132 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +436 -0
  8. data/Rakefile +12 -0
  9. data/lib/smart-id-ruby-client.rb +3 -0
  10. data/lib/smart_id_ruby/callback_url.rb +18 -0
  11. data/lib/smart_id_ruby/callback_url_util.rb +54 -0
  12. data/lib/smart_id_ruby/client.rb +124 -0
  13. data/lib/smart_id_ruby/configuration.rb +184 -0
  14. data/lib/smart_id_ruby/device_link_builder.rb +301 -0
  15. data/lib/smart_id_ruby/device_link_interaction.rb +67 -0
  16. data/lib/smart_id_ruby/errors/certificate_level_mismatch_error.rb +8 -0
  17. data/lib/smart_id_ruby/errors/document_unusable_error.rb +12 -0
  18. data/lib/smart_id_ruby/errors/error.rb +8 -0
  19. data/lib/smart_id_ruby/errors/expected_linked_session_error.rb +15 -0
  20. data/lib/smart_id_ruby/errors/no_suitable_account_of_requested_type_found_error.rb +10 -0
  21. data/lib/smart_id_ruby/errors/person_should_view_smart_id_portal_error.rb +8 -0
  22. data/lib/smart_id_ruby/errors/protocol_failure_error.rb +13 -0
  23. data/lib/smart_id_ruby/errors/relying_party_account_configuration_error.rb +10 -0
  24. data/lib/smart_id_ruby/errors/request_setup_error.rb +10 -0
  25. data/lib/smart_id_ruby/errors/request_validation_error.rb +8 -0
  26. data/lib/smart_id_ruby/errors/required_interaction_not_supported_by_app_error.rb +13 -0
  27. data/lib/smart_id_ruby/errors/response_error.rb +8 -0
  28. data/lib/smart_id_ruby/errors/server_maintenance_error.rb +8 -0
  29. data/lib/smart_id_ruby/errors/session_end_result_error.rb +15 -0
  30. data/lib/smart_id_ruby/errors/session_not_complete_error.rb +8 -0
  31. data/lib/smart_id_ruby/errors/session_not_found_error.rb +8 -0
  32. data/lib/smart_id_ruby/errors/session_secret_mismatch_error.rb +8 -0
  33. data/lib/smart_id_ruby/errors/session_timeout_error.rb +12 -0
  34. data/lib/smart_id_ruby/errors/smart_id_server_error.rb +12 -0
  35. data/lib/smart_id_ruby/errors/unprocessable_response_error.rb +9 -0
  36. data/lib/smart_id_ruby/errors/unsupported_client_api_version_error.rb +8 -0
  37. data/lib/smart_id_ruby/errors/user_account_not_found_error.rb +8 -0
  38. data/lib/smart_id_ruby/errors/user_account_unusable_error.rb +12 -0
  39. data/lib/smart_id_ruby/errors/user_refused_cert_choice_error.rb +14 -0
  40. data/lib/smart_id_ruby/errors/user_refused_confirmation_message_error.rb +13 -0
  41. data/lib/smart_id_ruby/errors/user_refused_confirmation_message_with_verification_choice_error.rb +13 -0
  42. data/lib/smart_id_ruby/errors/user_refused_display_text_and_pin_error.rb +13 -0
  43. data/lib/smart_id_ruby/errors/user_refused_error.rb +12 -0
  44. data/lib/smart_id_ruby/errors/user_selected_wrong_verification_code_error.rb +13 -0
  45. data/lib/smart_id_ruby/errors.rb +31 -0
  46. data/lib/smart_id_ruby/flows/base_builder.rb +90 -0
  47. data/lib/smart_id_ruby/flows/certificate_by_document_number_request_builder.rb +130 -0
  48. data/lib/smart_id_ruby/flows/device_link_authentication_session_request_builder.rb +208 -0
  49. data/lib/smart_id_ruby/flows/device_link_certificate_choice_session_request_builder.rb +112 -0
  50. data/lib/smart_id_ruby/flows/device_link_signature_session_request_builder.rb +286 -0
  51. data/lib/smart_id_ruby/flows/linked_notification_signature_session_request_builder.rb +235 -0
  52. data/lib/smart_id_ruby/flows/notification_authentication_session_request_builder.rb +184 -0
  53. data/lib/smart_id_ruby/flows/notification_certificate_choice_session_request_builder.rb +96 -0
  54. data/lib/smart_id_ruby/flows/notification_signature_session_request_builder.rb +272 -0
  55. data/lib/smart_id_ruby/models/authentication_identity.rb +19 -0
  56. data/lib/smart_id_ruby/models/authentication_response.rb +38 -0
  57. data/lib/smart_id_ruby/models/certificate_choice_response.rb +19 -0
  58. data/lib/smart_id_ruby/models/device_link_session_response.rb +34 -0
  59. data/lib/smart_id_ruby/models/notification_authentication_session_response.rb +25 -0
  60. data/lib/smart_id_ruby/models/notification_certificate_choice_session_response.rb +25 -0
  61. data/lib/smart_id_ruby/models/notification_signature_session_response.rb +29 -0
  62. data/lib/smart_id_ruby/models/session_status.rb +261 -0
  63. data/lib/smart_id_ruby/models/signature_response.rb +38 -0
  64. data/lib/smart_id_ruby/notification_interaction.rb +70 -0
  65. data/lib/smart_id_ruby/qr_code_generator.rb +65 -0
  66. data/lib/smart_id_ruby/rest/connector.rb +364 -0
  67. data/lib/smart_id_ruby/rest/session_status_poller.rb +125 -0
  68. data/lib/smart_id_ruby/rp_challenge.rb +37 -0
  69. data/lib/smart_id_ruby/rp_challenge_generator.rb +28 -0
  70. data/lib/smart_id_ruby/semantics_identifier.rb +35 -0
  71. data/lib/smart_id_ruby/validation/authentication_certificate_validator.rb +90 -0
  72. data/lib/smart_id_ruby/validation/authentication_identity_mapper.rb +227 -0
  73. data/lib/smart_id_ruby/validation/base_authentication_response_validator.rb +304 -0
  74. data/lib/smart_id_ruby/validation/certificate_choice_response_validator.rb +104 -0
  75. data/lib/smart_id_ruby/validation/certificate_validator.rb +170 -0
  76. data/lib/smart_id_ruby/validation/device_link_authentication_response_validator.rb +76 -0
  77. data/lib/smart_id_ruby/validation/error_result_handler.rb +88 -0
  78. data/lib/smart_id_ruby/validation/notification_authentication_response_validator.rb +16 -0
  79. data/lib/smart_id_ruby/validation/signature_payload_builder.rb +62 -0
  80. data/lib/smart_id_ruby/validation/signature_response_validator.rb +345 -0
  81. data/lib/smart_id_ruby/validation/signature_value_validator.rb +76 -0
  82. data/lib/smart_id_ruby/validation/trusted_ca_cert_store.rb +20 -0
  83. data/lib/smart_id_ruby/verification_code_calculator.rb +31 -0
  84. data/lib/smart_id_ruby/version.rb +5 -0
  85. data/lib/smart_id_ruby.rb +76 -0
  86. metadata +173 -0
metadata ADDED
@@ -0,0 +1,173 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: smart-id-ruby-client
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Sergei Tsõganov
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2026-04-07 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: base64
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: faraday
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rqrcode
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ description:
56
+ email:
57
+ - sergei.tsoganov@internet.ee
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - ".rspec"
63
+ - ".rubocop.yml"
64
+ - CHANGELOG.md
65
+ - CODE_OF_CONDUCT.md
66
+ - LICENSE.txt
67
+ - README.md
68
+ - Rakefile
69
+ - lib/smart-id-ruby-client.rb
70
+ - lib/smart_id_ruby.rb
71
+ - lib/smart_id_ruby/callback_url.rb
72
+ - lib/smart_id_ruby/callback_url_util.rb
73
+ - lib/smart_id_ruby/client.rb
74
+ - lib/smart_id_ruby/configuration.rb
75
+ - lib/smart_id_ruby/device_link_builder.rb
76
+ - lib/smart_id_ruby/device_link_interaction.rb
77
+ - lib/smart_id_ruby/errors.rb
78
+ - lib/smart_id_ruby/errors/certificate_level_mismatch_error.rb
79
+ - lib/smart_id_ruby/errors/document_unusable_error.rb
80
+ - lib/smart_id_ruby/errors/error.rb
81
+ - lib/smart_id_ruby/errors/expected_linked_session_error.rb
82
+ - lib/smart_id_ruby/errors/no_suitable_account_of_requested_type_found_error.rb
83
+ - lib/smart_id_ruby/errors/person_should_view_smart_id_portal_error.rb
84
+ - lib/smart_id_ruby/errors/protocol_failure_error.rb
85
+ - lib/smart_id_ruby/errors/relying_party_account_configuration_error.rb
86
+ - lib/smart_id_ruby/errors/request_setup_error.rb
87
+ - lib/smart_id_ruby/errors/request_validation_error.rb
88
+ - lib/smart_id_ruby/errors/required_interaction_not_supported_by_app_error.rb
89
+ - lib/smart_id_ruby/errors/response_error.rb
90
+ - lib/smart_id_ruby/errors/server_maintenance_error.rb
91
+ - lib/smart_id_ruby/errors/session_end_result_error.rb
92
+ - lib/smart_id_ruby/errors/session_not_complete_error.rb
93
+ - lib/smart_id_ruby/errors/session_not_found_error.rb
94
+ - lib/smart_id_ruby/errors/session_secret_mismatch_error.rb
95
+ - lib/smart_id_ruby/errors/session_timeout_error.rb
96
+ - lib/smart_id_ruby/errors/smart_id_server_error.rb
97
+ - lib/smart_id_ruby/errors/unprocessable_response_error.rb
98
+ - lib/smart_id_ruby/errors/unsupported_client_api_version_error.rb
99
+ - lib/smart_id_ruby/errors/user_account_not_found_error.rb
100
+ - lib/smart_id_ruby/errors/user_account_unusable_error.rb
101
+ - lib/smart_id_ruby/errors/user_refused_cert_choice_error.rb
102
+ - lib/smart_id_ruby/errors/user_refused_confirmation_message_error.rb
103
+ - lib/smart_id_ruby/errors/user_refused_confirmation_message_with_verification_choice_error.rb
104
+ - lib/smart_id_ruby/errors/user_refused_display_text_and_pin_error.rb
105
+ - lib/smart_id_ruby/errors/user_refused_error.rb
106
+ - lib/smart_id_ruby/errors/user_selected_wrong_verification_code_error.rb
107
+ - lib/smart_id_ruby/flows/base_builder.rb
108
+ - lib/smart_id_ruby/flows/certificate_by_document_number_request_builder.rb
109
+ - lib/smart_id_ruby/flows/device_link_authentication_session_request_builder.rb
110
+ - lib/smart_id_ruby/flows/device_link_certificate_choice_session_request_builder.rb
111
+ - lib/smart_id_ruby/flows/device_link_signature_session_request_builder.rb
112
+ - lib/smart_id_ruby/flows/linked_notification_signature_session_request_builder.rb
113
+ - lib/smart_id_ruby/flows/notification_authentication_session_request_builder.rb
114
+ - lib/smart_id_ruby/flows/notification_certificate_choice_session_request_builder.rb
115
+ - lib/smart_id_ruby/flows/notification_signature_session_request_builder.rb
116
+ - lib/smart_id_ruby/models/authentication_identity.rb
117
+ - lib/smart_id_ruby/models/authentication_response.rb
118
+ - lib/smart_id_ruby/models/certificate_choice_response.rb
119
+ - lib/smart_id_ruby/models/device_link_session_response.rb
120
+ - lib/smart_id_ruby/models/notification_authentication_session_response.rb
121
+ - lib/smart_id_ruby/models/notification_certificate_choice_session_response.rb
122
+ - lib/smart_id_ruby/models/notification_signature_session_response.rb
123
+ - lib/smart_id_ruby/models/session_status.rb
124
+ - lib/smart_id_ruby/models/signature_response.rb
125
+ - lib/smart_id_ruby/notification_interaction.rb
126
+ - lib/smart_id_ruby/qr_code_generator.rb
127
+ - lib/smart_id_ruby/rest/connector.rb
128
+ - lib/smart_id_ruby/rest/session_status_poller.rb
129
+ - lib/smart_id_ruby/rp_challenge.rb
130
+ - lib/smart_id_ruby/rp_challenge_generator.rb
131
+ - lib/smart_id_ruby/semantics_identifier.rb
132
+ - lib/smart_id_ruby/validation/authentication_certificate_validator.rb
133
+ - lib/smart_id_ruby/validation/authentication_identity_mapper.rb
134
+ - lib/smart_id_ruby/validation/base_authentication_response_validator.rb
135
+ - lib/smart_id_ruby/validation/certificate_choice_response_validator.rb
136
+ - lib/smart_id_ruby/validation/certificate_validator.rb
137
+ - lib/smart_id_ruby/validation/device_link_authentication_response_validator.rb
138
+ - lib/smart_id_ruby/validation/error_result_handler.rb
139
+ - lib/smart_id_ruby/validation/notification_authentication_response_validator.rb
140
+ - lib/smart_id_ruby/validation/signature_payload_builder.rb
141
+ - lib/smart_id_ruby/validation/signature_response_validator.rb
142
+ - lib/smart_id_ruby/validation/signature_value_validator.rb
143
+ - lib/smart_id_ruby/validation/trusted_ca_cert_store.rb
144
+ - lib/smart_id_ruby/verification_code_calculator.rb
145
+ - lib/smart_id_ruby/version.rb
146
+ homepage: https://github.com/maricavor/smart-id-ruby-client
147
+ licenses:
148
+ - MIT
149
+ metadata:
150
+ rubygems_mfa_required: 'true'
151
+ homepage_uri: https://github.com/maricavor/smart-id-ruby-client
152
+ source_code_uri: https://github.com/maricavor/smart-id-ruby-client
153
+ changelog_uri: https://github.com/maricavor/smart-id-ruby-client/CHANGELOG.md
154
+ post_install_message:
155
+ rdoc_options: []
156
+ require_paths:
157
+ - lib
158
+ required_ruby_version: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: 3.0.0
163
+ required_rubygems_version: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: '0'
168
+ requirements: []
169
+ rubygems_version: 3.5.22
170
+ signing_key:
171
+ specification_version: 4
172
+ summary: Smart-ID wrapper library for using Smart-ID in Ruby applications
173
+ test_files: []