passbyme2fa-client 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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f9f25bb079fb8d477b3f0c0229e3ebde10cfe4c7
4
+ data.tar.gz: 8e900eacbd2e8e6d0a8c5257a754bffe0561fcd0
5
+ SHA512:
6
+ metadata.gz: 43848b29105de3b7668b308ff325c72aa1082a1f967e046338cffbce599716b08db8b9e7a25cb7079eb2ce3f454c8bfcde09c088a1ac1f1cbd45c10bd9621608
7
+ data.tar.gz: 6d6ceca96c4fb4d1ae036e3ae1eb346eea901836132eabb005579e5915ef7116d0a6a9b90edd495c04e1ce428f36cd73b0c0b1a42e8a8f76de6c46918db51abc
@@ -0,0 +1,11 @@
1
+
2
+ class HTTPError < IOError
3
+
4
+ attr_reader :response
5
+
6
+ def initialize(response)
7
+ super("An HTTP error occurred!")
8
+ @response = response
9
+ end
10
+
11
+ end
@@ -0,0 +1,5 @@
1
+ module JSONHelper
2
+ def get_json_field(json, field)
3
+ json[field] or raise IOError.new("Missing JSON field: #{field}")
4
+ end
5
+ end
@@ -0,0 +1,11 @@
1
+
2
+ class PassByMEError < IOError
3
+
4
+ attr_reader :response
5
+
6
+ def initialize(response)
7
+ super("A PassBy[ME] specific error occurred!")
8
+ @response = response
9
+ end
10
+
11
+ end
@@ -0,0 +1,13 @@
1
+ require_relative 'json_helper'
2
+
3
+ class RecipientStatus
4
+ include JSONHelper
5
+
6
+ attr_reader :user_id, :status
7
+
8
+ def initialize(json)
9
+ @user_id = get_json_field(json, "userId")
10
+ @status = get_json_field(json, "status")
11
+ end
12
+
13
+ end
@@ -0,0 +1,34 @@
1
+ require 'time'
2
+ require_relative 'json_helper'
3
+ require_relative 'recipient_status'
4
+
5
+ class SessionInfo
6
+ include JSONHelper
7
+
8
+ attr_reader :message_id, :expiration_date, :recipient_statuses
9
+
10
+ def initialize(json, pbm_client)
11
+ re_initialize(json)
12
+ @pbm_client = pbm_client
13
+ if !@pbm_client
14
+ raise ArgumentError.new("PassBy[ME] client is missing.")
15
+ end
16
+ end
17
+
18
+ def re_initialize(json)
19
+ @message_id = get_json_field(json, "messageId")
20
+ @expiration_date = Time.parse(get_json_field(json, "expirationDate"))
21
+ @recipient_statuses = get_json_field(json, "recipients").collect { |recipient|
22
+ RecipientStatus.new(recipient)
23
+ }
24
+ end
25
+
26
+ def refresh
27
+ @pbm_client.track_message(self)
28
+ end
29
+
30
+ def cancel
31
+ @pbm_client.cancel_message(self)
32
+ end
33
+
34
+ end
@@ -0,0 +1,270 @@
1
+ Bag Attributes
2
+ friendlyName: test passbyme root ca v1
3
+ 2.16.840.1.113894.746875.1.1: <Unsupported tag 6>
4
+ subject=/C=HU/L=Budapest/O=Microsec Ltd./OU=PassByMe IDP/CN=PassByMe Root CA v1
5
+ issuer=/C=HU/L=Budapest/O=Microsec Ltd./OU=PassByMe IDP/CN=PassByMe Root CA v1
6
+ -----BEGIN CERTIFICATE-----
7
+ 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
38
+ -----END CERTIFICATE-----
39
+ Bag Attributes
40
+ friendlyName: passbyme root ca 2015
41
+ 2.16.840.1.113894.746875.1.1: <Unsupported tag 6>
42
+ subject=/C=HU/O=Microsec Ltd./CN=PassByME Root CA 2015
43
+ issuer=/C=HU/O=Microsec Ltd./CN=PassByME Root CA 2015
44
+ -----BEGIN CERTIFICATE-----
45
+ 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
74
+ 8mIKnQ==
75
+ -----END CERTIFICATE-----
76
+ Bag Attributes
77
+ friendlyName: passbyme ca2 (passbyme root ca 2015)
78
+ 2.16.840.1.113894.746875.1.1: <Unsupported tag 6>
79
+ subject=/C=HU/O=Microsec Ltd./CN=PassByME CA2
80
+ issuer=/C=HU/O=Microsec Ltd./CN=PassByME Root CA 2015
81
+ -----BEGIN CERTIFICATE-----
82
+ MIIGwDCCBKigAwIBAgIMWVqV4x4EqjLNXocKMA0GCSqGSIb3DQEBCwUAMEUxCzAJ
83
+ BgNVBAYTAkhVMRYwFAYDVQQKDA1NaWNyb3NlYyBMdGQuMR4wHAYDVQQDDBVQYXNz
84
+ QnlNRSBSb290IENBIDIwMTUwHhcNMTUwMTI0MjI1NjA0WhcNMzgwMTEzMjI1NjA0
85
+ WjA8MQswCQYDVQQGEwJIVTEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEVMBMGA1UE
86
+ AwwMUGFzc0J5TUUgQ0EyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
87
+ jlMl35b7oTzjWKfqvTdsPmei35Jr5qTXit+Rw+JSRy+5IrhnuTKKllQOu0Fx16Ox
88
+ Q64hBdS1W8QL+30X8rGpO1/ZLEGNJOsJYMGtZDkYJ8x3lf/IQ9dTFCJHpE7L00JE
89
+ yudVf9LuaodgS9SO+gCKGATX2nvAy989m1PPoSoFrGhiDP6Q5JdKpvghHQdRSMV3
90
+ ElSKh7WNn3V0nhvEeR4Egz9hOe052G4b+i8zedUVVpCsf3NFIiKa6by+pHfkPO4u
91
+ gn1KyVAbHQsHPfr3k/wW9Dy9Ax0y7u9aenNR+rl8sROlI3TAsiWKmeXTV6YOFSJx
92
+ gHTe5SQTGvpxkQFAjW6EJwIDAQABo4ICtzCCArMwDwYDVR0TAQH/BAUwAwEB/zAO
93
+ BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFOWR29dCEyfDpTnT6c+/bm06aZ7QMB8G
94
+ A1UdIwQYMBaAFAs0STjQpYuOWK7vy9Spcm697eZuMIHLBgNVHR8EgcMwgcAwPqA8
95
+ oDqGOGh0dHA6Ly9wYm1yb290Y2EyMDE1LWNybDEucGFzc2J5bWUuY29tL3BibXJv
96
+ b3RjYTIwMTUuY3JsMD6gPKA6hjhodHRwOi8vcGJtcm9vdGNhMjAxNS1jcmwyLnBh
97
+ c3NieW1lLmNvbS9wYm1yb290Y2EyMDE1LmNybDA+oDygOoY4aHR0cDovL3BibXJv
98
+ b3RjYTIwMTUtY3JsMy5wYXNzYnltZS5jb20vcGJtcm9vdGNhMjAxNS5jcmwwggGA
99
+ BggrBgEFBQcBAQSCAXIwggFuMDMGCCsGAQUFBzABhidodHRwOi8vcGJtcm9vdGNh
100
+ MjAxNS1vY3NwMS5wYXNzYnltZS5jb20wMwYIKwYBBQUHMAGGJ2h0dHA6Ly9wYm1y
101
+ b290Y2EyMDE1LW9jc3AyLnBhc3NieW1lLmNvbTAzBggrBgEFBQcwAYYnaHR0cDov
102
+ L3BibXJvb3RjYTIwMTUtb2NzcDMucGFzc2J5bWUuY29tMEMGCCsGAQUFBzAChjdo
103
+ dHRwOi8vcGJtcm9vdGNhMjAxNS1jYTEucGFzc2J5bWUuY29tL3BibXJvb3RjYTIw
104
+ MTUuY3J0MEMGCCsGAQUFBzAChjdodHRwOi8vcGJtcm9vdGNhMjAxNS1jYTIucGFz
105
+ c2J5bWUuY29tL3BibXJvb3RjYTIwMTUuY3J0MEMGCCsGAQUFBzAChjdodHRwOi8v
106
+ cGJtcm9vdGNhMjAxNS1jYTMucGFzc2J5bWUuY29tL3BibXJvb3RjYTIwMTUuY3J0
107
+ MA0GCSqGSIb3DQEBCwUAA4ICAQCiwgIF7v5VYLp1XomwLF+hNjEe4yY1nBK7mu9f
108
+ skRFF14yLhP38Jxe5UFK4lWlUr4iKScHKum84OL1NXpiw3eySPRv9gYU5R/Z/0iz
109
+ 2KA6HbIq90VtnF7leysMFv8NALpKddAjgsQQa+78xkyrzCrnjkt+XZfUlLdl1LA5
110
+ YvpgE0I0ZGJxNCYYf6pw/VABMmmCURDMmrchJ+h7AStCyxTDHOa/bssWt1X1m+/I
111
+ ho7RDabnxK3NNlVExkt54ZH4PfUrJ8cEvmj7BlePTbd+wPAKf1w6yTXr8W7yAr3H
112
+ 5agg+mu9Pivmnxf7+dRZ/b2wpXAxVAqc61st9e1WwTrzCJxbi19Nj05d4PRFrUyB
113
+ jiK/GK2NYGFY05QbdxT7lD8Qcb8RCYEJaM4rbmR8CFTrMOYlgQvOQjoq1oqC+6tg
114
+ 1nExQHa1MAmBUbiFG+7Cw1vQQTIJgaGHXb1rG5HTNBIttEpgSvnlX5ptAvahYOEH
115
+ M++fUlrbCDYEiEcOS6ZxRinMP1zxbCfpJ/h+huhgRxva13gmXidYklR1lBPoO1RI
116
+ SHgUM1uF9dNm5KGyrXCpgKbfDiuccti1D8Clugq6jWUd45zoNYLpem4CNGoH41od
117
+ GUWrF4GDCpqlKB4xwO30MCQPMJCu5DNa0/tW+7GVtcHzcOE67Gejj+exRMfxR7bt
118
+ tWeOgg==
119
+ -----END CERTIFICATE-----
120
+ Bag Attributes
121
+ friendlyName: passbyme ca1 (passbyme root ca 2015)
122
+ 2.16.840.1.113894.746875.1.1: <Unsupported tag 6>
123
+ subject=/C=HU/O=Microsec Ltd./CN=PassByME CA1
124
+ issuer=/C=HU/O=Microsec Ltd./CN=PassByME Root CA 2015
125
+ -----BEGIN CERTIFICATE-----
126
+ MIIGwDCCBKigAwIBAgIMWLGF3JeUArF+mXIKMA0GCSqGSIb3DQEBCwUAMEUxCzAJ
127
+ BgNVBAYTAkhVMRYwFAYDVQQKDA1NaWNyb3NlYyBMdGQuMR4wHAYDVQQDDBVQYXNz
128
+ QnlNRSBSb290IENBIDIwMTUwHhcNMTUwMTI0MjI1MzE0WhcNMzgwMTEzMjI1MzE0
129
+ WjA8MQswCQYDVQQGEwJIVTEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEVMBMGA1UE
130
+ AwwMUGFzc0J5TUUgQ0ExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
131
+ ro7Hj41aP/iHCis8tagbjq9xpnnBTzA7tLYt0Ll/eWu2sr6BYKGLpKul+8hfx3bv
132
+ YChCT8IJ22QBuJlVIqNeWOdbLV1+HtbWiCoN1CDWWSdwOfA57W99gSp5vjYo3e/n
133
+ 2WAZ7k1kUA3R46kktBkfbsDWGj7LxOs5ActqTKnEOShvsyAO8GHgMJQ1pAFXZGWp
134
+ KpzC5it+4dORBdOfDTr6CmCTWZYwH4nh/FlWhCHL6uePagK0KRlruNNFZsz4cGVV
135
+ moKppwggM9ARazcv1LupNFuGEaCXuEfwezUwS4/5yzMM5bUGR/+KnFX5AfehNUcn
136
+ /YYuWmHrwYmvVZJtzaivLwIDAQABo4ICtzCCArMwDwYDVR0TAQH/BAUwAwEB/zAO
137
+ BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMTEJYNIalkm38KoTs/SAf5UNorBMB8G
138
+ A1UdIwQYMBaAFAs0STjQpYuOWK7vy9Spcm697eZuMIHLBgNVHR8EgcMwgcAwPqA8
139
+ oDqGOGh0dHA6Ly9wYm1yb290Y2EyMDE1LWNybDEucGFzc2J5bWUuY29tL3BibXJv
140
+ b3RjYTIwMTUuY3JsMD6gPKA6hjhodHRwOi8vcGJtcm9vdGNhMjAxNS1jcmwyLnBh
141
+ c3NieW1lLmNvbS9wYm1yb290Y2EyMDE1LmNybDA+oDygOoY4aHR0cDovL3BibXJv
142
+ b3RjYTIwMTUtY3JsMy5wYXNzYnltZS5jb20vcGJtcm9vdGNhMjAxNS5jcmwwggGA
143
+ BggrBgEFBQcBAQSCAXIwggFuMDMGCCsGAQUFBzABhidodHRwOi8vcGJtcm9vdGNh
144
+ MjAxNS1vY3NwMS5wYXNzYnltZS5jb20wMwYIKwYBBQUHMAGGJ2h0dHA6Ly9wYm1y
145
+ b290Y2EyMDE1LW9jc3AyLnBhc3NieW1lLmNvbTAzBggrBgEFBQcwAYYnaHR0cDov
146
+ L3BibXJvb3RjYTIwMTUtb2NzcDMucGFzc2J5bWUuY29tMEMGCCsGAQUFBzAChjdo
147
+ dHRwOi8vcGJtcm9vdGNhMjAxNS1jYTEucGFzc2J5bWUuY29tL3BibXJvb3RjYTIw
148
+ MTUuY3J0MEMGCCsGAQUFBzAChjdodHRwOi8vcGJtcm9vdGNhMjAxNS1jYTIucGFz
149
+ c2J5bWUuY29tL3BibXJvb3RjYTIwMTUuY3J0MEMGCCsGAQUFBzAChjdodHRwOi8v
150
+ cGJtcm9vdGNhMjAxNS1jYTMucGFzc2J5bWUuY29tL3BibXJvb3RjYTIwMTUuY3J0
151
+ MA0GCSqGSIb3DQEBCwUAA4ICAQBqPfwgJIeu9qFSfK3PYW06adb6n3AbkWOUKuCC
152
+ W9fWDNPYtwvDT2CSedfD1m/QmdiI1vtIrVCa7fFFko2wIV02thk0C0dyg9fyk/UW
153
+ Bch9oSzbLKjsAFQ6OBogowzyniijqto5xUc3KNGecf4JdZOP98KRXs8OHmwvd4IP
154
+ 7/FTLsmy5J4Ye+YIyJIhKtdJu0vfVCywdlnDRXjdMsh3ZXTolZ8dJsaof5cODTsj
155
+ U9w9telpFo3dMxe1w9/9mvhVtxLV1FaODjcxmHE38F6qg8lZ+6TxjYEpdC9lIybC
156
+ AJ14TlUZP0eVxC6WRH+Zn1XXRblSMHsuQU6KbE9kYxJ2pxHLwqTomHOnHLOHBUF/
157
+ VzMh4E4ZjyPW19OnbMd9Hl+aDcr4GJvw6LmRvyOp1Jgpclv9Wf810CUEI5WjFK7I
158
+ rjtf5Z7ORkEWv0sZL37jyzhPxqCcLGziqzaCL+Njey/O9kVcGRnv9pCTI4vw719d
159
+ uByQUsAqq5tf+ocbXtLE0EjpsROwJUrY7r8egIf+ey8KWAj7+zoqMWAye+EUTUP4
160
+ OAAIwCWxGcS3BOfSMB4ySEbpjGHNjY9Br2AGyySaPGunQsVJ9N2ZtOHsnNEFWyQS
161
+ b6yfrbXTRRZ2audtckbt0OqObInv0gCJEDXVIYHdchWL1l0bHOqdrNMJMxKmORgf
162
+ PeCKiA==
163
+ -----END CERTIFICATE-----
164
+ Bag Attributes
165
+ friendlyName: test passbyme ca1 (passbyme root ca v1)
166
+ 2.16.840.1.113894.746875.1.1: <Unsupported tag 6>
167
+ subject=/C=HU/L=Budapest/O=Microsec Ltd./OU=PassByMe IDP/CN=PassByMe CA1
168
+ issuer=/C=HU/L=Budapest/O=Microsec Ltd./OU=PassByMe IDP/CN=PassByMe Root CA v1
169
+ -----BEGIN CERTIFICATE-----
170
+ MIIFVDCCAzygAwIBAgIIARc1L1fBPj8wDQYJKoZIhvcNAQELBQAwbTELMAkGA1UE
171
+ BhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRYwFAYDVQQKDA1NaWNyb3NlYyBMdGQu
172
+ MRUwEwYDVQQLDAxQYXNzQnlNZSBJRFAxHDAaBgNVBAMME1Bhc3NCeU1lIFJvb3Qg
173
+ Q0EgdjEwHhcNMTQwNzAzMTMwMzI0WhcNMzUxMjMwMTAwMDAwWjBmMQswCQYDVQQG
174
+ EwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4x
175
+ FTATBgNVBAsMDFBhc3NCeU1lIElEUDEVMBMGA1UEAwwMUGFzc0J5TWUgQ0ExMIIB
176
+ IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvw2icL+VhBMYpqY2TQlThW4p
177
+ pP8o4noUzF371CWpGyXjviyupnyEfYG4boGOzhPxAv5TtBl06WtKaI6jJK2do+Hy
178
+ PauGtZHaiTnqdV4qE70bLD4aV5GqxgMCE4dYA6xHQOFgHsH5+jqsdr6ontvdUDZN
179
+ ZyO4EBDLpz3dX5v65UZT3CydNkmKkA6Ka//hmNAjO8imr/ghj/rcTGb3quo7BbUd
180
+ /oaDsM4d7XDKA5dXe02X+a7KQEjlaXN0F9kpftQVezlBVVUfJZ67NNnp6Mmxze/Y
181
+ pcBSZBgT+cnC3tz7XIU59Dib6jwYOE2IY8DqD3wFA2W8dgAnaRwmDzpKtjrmHQID
182
+ AQABo4H+MIH7MEsGCCsGAQUFBwEBBD8wPTA7BggrBgEFBQcwAYYvaHR0cDovL3Bi
183
+ bS1kZXYtY2EuZ3JhcGhpLmludHJhLm1pY3Jvc2VjLmh1L29jc3AwHQYDVR0OBBYE
184
+ FNtBV/7TfGHL2Tpygy/6AcEb4/lSMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgw
185
+ FoAUK12nICVmDO8pi0zoxAHkxMAZ7o4wSwYDVR0fBEQwQjBAoD6gPIY6aHR0cDov
186
+ L3BibS1kZXYtY2EuZ3JhcGhpLmludHJhLm1pY3Jvc2VjLmh1L3BibXJvb3RjYXYx
187
+ LmNybDAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIBAIzunOknhPa5
188
+ qX+xTqVKcuM+EeYPFQrQSTHb0KBzRgo9X6YVLBh0dg/pttiuv5Z/aZTQk0eOCmDD
189
+ 9kuDKRz8mnaXPeEyBqnTCuCVQN6vFOIdi7cemmjEUC9lUy+5p/QJAQlAQtD9/mDP
190
+ DmpLTnuLHITqiqNDzYa5WBL8grBsHzO5lj1Y9gLbRrsHYFb9UjDfpDywvnBxZ5mG
191
+ 4VLaTtO9/6tMW2efa/Txb2O2t+OhgeBgZKNGlfJggLtK1z0Zs2BR+83chvJglXYn
192
+ Uh7C58IfrXAndTVVLFgT2LjATbZCSI16RWNycq3uCqabpmEvYSwuu9VrtpAn9XeU
193
+ f64k0Aw0dBpMufGpfWWZkeFdMOfvM0cjZq7rLT6qGaQ/kA4adeqKkNKGeLEJiKkl
194
+ J6MGOWipmgqCIii9ncAE+PW+KZKvQMsI58JZmHst56fcjuBnbCqlS2l9foPeA5KT
195
+ Gbp7vdn8YvMfNgXgbL7eeGIYl1gD41W1Ue9KTSWinTIuA34h2AL4iewQ//Iz/QQj
196
+ yR6V1JQ3XHOpHVxoQV4bkeMve5HmkByZuVoYvAt5bF+o3JSgg57wkz1zlsdhSlrb
197
+ f5uuGPvnJElM6foV5ulC+D3OifD3+kHhHLvPQ2fsKxyiJhi8ndSUtptIWmZvS46R
198
+ 9fDYHR3h9Ycb71SESDufRAnrvGJ103+6
199
+ -----END CERTIFICATE-----
200
+ Bag Attributes
201
+ friendlyName: microsec e-szigno root ca 2009
202
+ 2.16.840.1.113894.746875.1.1: <Unsupported tag 6>
203
+ subject=/C=HU/L=Budapest/O=Microsec Ltd./CN=Microsec e-Szigno Root CA 2009/emailAddress=info@e-szigno.hu
204
+ issuer=/C=HU/L=Budapest/O=Microsec Ltd./CN=Microsec e-Szigno Root CA 2009/emailAddress=info@e-szigno.hu
205
+ -----BEGIN CERTIFICATE-----
206
+ MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYD
207
+ VQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0
208
+ ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0G
209
+ CSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTAeFw0wOTA2MTYxMTMwMThaFw0y
210
+ OTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3Qx
211
+ FjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3pp
212
+ Z25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o
213
+ dTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvP
214
+ kd6mJviZpWNwrZuuyjNAfW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tc
215
+ cbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG0IMZfcChEhyVbUr02MelTTMuhTlAdX4U
216
+ fIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKApxn1ntxVUwOXewdI/5n7
217
+ N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm1HxdrtbC
218
+ xkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1
219
+ +rUCAwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
220
+ A1UdDgQWBBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPM
221
+ Pcu1SCOhGnqmKrs0aDAbBgNVHREEFDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqG
222
+ SIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0olZMEyL/azXm4Q5DwpL7v8u8h
223
+ mLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfXI/OMn74dseGk
224
+ ddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775
225
+ tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c
226
+ 2Pm2G2JwCz02yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5t
227
+ HMN1Rq41Bab2XD0h7lbwyYIiLXpUq3DDfSJlgnCW
228
+ -----END CERTIFICATE-----
229
+ Bag Attributes
230
+ friendlyName: e-szigno ssl ca 2014 (microsec e-szigno root ca 2009)
231
+ 2.16.840.1.113894.746875.1.1: <Unsupported tag 6>
232
+ subject=/C=HU/L=Budapest/O=Microsec Ltd./CN=e-Szigno SSL CA 2014/emailAddress=info@e-szigno.hu
233
+ issuer=/C=HU/L=Budapest/O=Microsec Ltd./CN=Microsec e-Szigno Root CA 2009/emailAddress=info@e-szigno.hu
234
+ -----BEGIN CERTIFICATE-----
235
+ MIIGXjCCBUagAwIBAgIMU1zSo6wT2dxKS4MKMA0GCSqGSIb3DQEBCwUAMIGCMQsw
236
+ CQYDVQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2Vj
237
+ IEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEf
238
+ MB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTAeFw0xNDA3MDgxNDM1MjFa
239
+ Fw0yOTEyMjkxNDM1MjFaMHgxCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVz
240
+ dDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEdMBsGA1UEAwwUZS1Temlnbm8gU1NM
241
+ IENBIDIwMTQxHzAdBgkqhkiG9w0BCQEWEGluZm9AZS1zemlnbm8uaHUwggEiMA0G
242
+ CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC/z1KGU12pZR5il1tkzC8F9itEF/A5
243
+ u3FQnzLdPqurZo4o7YTOKdkV/bzRnGf5xphe6LZHhENDZJ78LkSxUNs7jLMnMjp1
244
+ UDoW0cREg5nstWDX7heSMD59HBrm1W8sHMvmfwch+wwGaSUhzglff2WzdzCADqaB
245
+ YkVTgm3XoEpGaoBMYAoyTnVbs2QX40AfGbzcQUDRxm4zcTU5ovfM6c3obQkCp4+s
246
+ 1K5nsmTzO/MnH1t+eE+0mt58aMwrqTe3vjabnppgDmMN2nXDEErjb9HrD/pv9Yeq
247
+ XmWPzKTfJ0veEi/xndoeSkQOXETDB0u8vQlu/bmTgBUs3skzWp2X0vLbAgMBAAGj
248
+ ggLbMIIC1zAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjA7BgNVHSAE
249
+ NDAyMDAGBFUdIAAwKDAmBggrBgEFBQcCARYaaHR0cDovL2NwLmUtc3ppZ25vLmh1
250
+ L2FjcHMwHQYDVR0OBBYEFN5qsE5DqghBR3S/pYqBVEwgxXUoMB8GA1UdIwQYMBaA
251
+ FMsPxt9CQ8w9y7VII6EaeqYquzRoMBsGA1UdEQQUMBKBEGluZm9AZS1zemlnbm8u
252
+ aHUwgbYGA1UdHwSBrjCBqzA3oDWgM4YxaHR0cDovL3Jvb3RjYTIwMDktY3JsMS5l
253
+ LXN6aWduby5odS9yb290Y2EyMDA5LmNybDA3oDWgM4YxaHR0cDovL3Jvb3RjYTIw
254
+ MDktY3JsMi5lLXN6aWduby5odS9yb290Y2EyMDA5LmNybDA3oDWgM4YxaHR0cDov
255
+ L3Jvb3RjYTIwMDktY3JsMy5lLXN6aWduby5odS9yb290Y2EyMDA5LmNybDCCAV8G
256
+ CCsGAQUFBwEBBIIBUTCCAU0wLwYIKwYBBQUHMAGGI2h0dHA6Ly9yb290Y2EyMDA5
257
+ LW9jc3AxLmUtc3ppZ25vLmh1MC8GCCsGAQUFBzABhiNodHRwOi8vcm9vdGNhMjAw
258
+ OS1vY3NwMi5lLXN6aWduby5odTAvBggrBgEFBQcwAYYjaHR0cDovL3Jvb3RjYTIw
259
+ MDktb2NzcDMuZS1zemlnbm8uaHUwPAYIKwYBBQUHMAKGMGh0dHA6Ly9yb290Y2Ey
260
+ MDA5LWNhMS5lLXN6aWduby5odS9yb290Y2EyMDA5LmNydDA8BggrBgEFBQcwAoYw
261
+ aHR0cDovL3Jvb3RjYTIwMDktY2EyLmUtc3ppZ25vLmh1L3Jvb3RjYTIwMDkuY3J0
262
+ MDwGCCsGAQUFBzAChjBodHRwOi8vcm9vdGNhMjAwOS1jYTMuZS1zemlnbm8uaHUv
263
+ cm9vdGNhMjAwOS5jcnQwDQYJKoZIhvcNAQELBQADggEBALEgpxbV/mGh1vWAO8dx
264
+ ONwv+aP7Nb5dXTP0YjtrIE6a5zV+IpXK+inu+OJftAHV0an32ovpzpta2EvR5ci/
265
+ C7o9h8eyforkTxMDndPwZ97ey/5qaz48t7wdz6w6YXCs5LpMzU4BmG+ubTdGNZQv
266
+ w6cwlxRl3p2KZTZbyJj7t3fM5JcrKVwn8844bfFTKSQni90xzxiO8bz5LjFoDMii
267
+ vCKKMZXHpZMEi4QsyEKT6sqT+RXp8dsRrdJ/klSu8kUQu4xyWTTTMVs9cCG7ZxzR
268
+ VyNLg3Rc7vMcYCe5KOiP+H1y0pR9FRSGqMS7Rwa0A4J5nMlGKogQ5R/pp715cMbK
269
+ mpQ=
270
+ -----END CERTIFICATE-----
@@ -0,0 +1,134 @@
1
+ require 'net/http'
2
+ require 'openssl'
3
+ require 'json'
4
+
5
+ require_relative 'passbyme2fa-client/http_error'
6
+ require_relative 'passbyme2fa-client/passbyme_error'
7
+ require_relative 'passbyme2fa-client/session_info'
8
+
9
+ class PassByME2FAClient
10
+
11
+ VERSION = "1.0.0"
12
+
13
+ module MessageType
14
+ AUTHORIZATION = "authorization"
15
+ MESSAGE = "message"
16
+ ESIGN = "esign"
17
+ end
18
+
19
+ module MessageStatus
20
+ PENDING = "PENDING"
21
+ NOTIFIED = "NOTIFIED"
22
+ DOWNLOADED = "DOWNLOADED"
23
+ SEEN = "SEEN"
24
+ NOT_SEEN = "NOT_SEEN"
25
+ NOT_NOTIFIED = "NOT_NOTIFIED"
26
+ NOT_DOWNLOADED = "NOT_DOWNLOADED"
27
+ NO_DEVICE = "NO_DEVICE"
28
+ FAILED = "FAILED"
29
+ DISABLED = "DISABLED"
30
+ CANCELLED = "CANCELLED"
31
+ APPROVED = "APPROVED"
32
+ DENIED = "DENIED"
33
+ end
34
+
35
+ def initialize(http_options)
36
+ if !http_options.include? :key or !http_options.include? :cert
37
+ raise ArgumentError.new("SSL key or certificate is missing!")
38
+ end
39
+ url = (http_options.include?(:address) ? http_options[:address] : "auth-sp.passbyme.com")
40
+ http_options.delete :address
41
+ @http = Net::HTTP.start(url, http_options.merge({
42
+ :use_ssl => true,
43
+ :verify_mode => OpenSSL::SSL::VERIFY_PEER,
44
+ :ca_file => File.expand_path("../passbyme2fa-client/truststore.pem", __FILE__),
45
+ }))
46
+ end
47
+
48
+ def send_message(params)
49
+ recipients = params[:recipients]
50
+ subject = params[:subject]
51
+ body = params[:body]
52
+ availability = params[:availability]
53
+ type = params[:type]
54
+ callbackUrl = params[:callbackUrl]
55
+
56
+ if recipients.nil? or recipients.length == 0
57
+ raise ArgumentError.new("Missing recipients!")
58
+ end
59
+
60
+ availability = availability.to_i
61
+ if availability < 1
62
+ raise ArgumentError.new("Availability must be an integer greater than 0.")
63
+ end
64
+
65
+ raise ArgumentError.new("Invalid message type #{type}.") unless MessageType.constants.index { |ct|
66
+ MessageType.const_get(ct) == type
67
+ }
68
+
69
+ req = Net::HTTP::Post.new("/frontend/messages", "Content-Type" => "application/json")
70
+ req.body = {
71
+ :recipients => recipients,
72
+ :subject => subject,
73
+ :body => body,
74
+ :availability => availability,
75
+ :type => type,
76
+ :callbackUrl => callbackUrl
77
+ }.to_json
78
+
79
+ SessionInfo.new(JSON.parse(do_https(req)), self)
80
+ end
81
+
82
+ def track_message(message_id)
83
+ handle_existing_message(message_id, Net::HTTP::Get)
84
+ end
85
+
86
+ def cancel_message(message_id)
87
+ handle_existing_message(message_id, Net::HTTP::Delete)
88
+ end
89
+
90
+ private
91
+
92
+ def handle_existing_message(message_id, net_http_class)
93
+ message_handle = nil
94
+ if message_id.is_a? Hash
95
+ message_id = message_id[:messageId]
96
+ end
97
+ if message_id.is_a? SessionInfo
98
+ message_handle = message_id
99
+ message_id = message_id.message_id
100
+ end
101
+ if message_id.nil? or message_id == ""
102
+ raise ArgumentError.new("Empty message id!")
103
+ end
104
+
105
+ req = net_http_class.new("/frontend/messages/#{message_id}")
106
+
107
+ json = JSON.parse(do_https(req))
108
+
109
+ if message_handle.nil?
110
+ message_handle = SessionInfo.new(json, self)
111
+ else
112
+ message_handle.re_initialize(json)
113
+ end
114
+
115
+ message_handle
116
+ end
117
+
118
+ def do_https(req)
119
+ req.add_field("X-PBM-API-VERSION", "1")
120
+
121
+ res = @http.request(req)
122
+ raise HTTPError.new(res) unless res.body
123
+
124
+ if res.code !~ /\A2..\z/
125
+ if res.code == "420"
126
+ raise PassByMEError.new(JSON.parse(res.body))
127
+ else
128
+ raise HTTPError.new(res)
129
+ end
130
+ end
131
+
132
+ res.body
133
+ end
134
+ end
metadata ADDED
@@ -0,0 +1,107 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: passbyme2fa-client
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Microsec ltd.
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-01-18 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
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: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: webmock
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: Messaging SDK for PassBy[ME] Mobile ID solution
70
+ email:
71
+ - development@passbyme.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - lib/passbyme2fa-client.rb
77
+ - lib/passbyme2fa-client/http_error.rb
78
+ - lib/passbyme2fa-client/json_helper.rb
79
+ - lib/passbyme2fa-client/passbyme_error.rb
80
+ - lib/passbyme2fa-client/recipient_status.rb
81
+ - lib/passbyme2fa-client/session_info.rb
82
+ - lib/passbyme2fa-client/truststore.pem
83
+ homepage: https://www.passbyme.com/
84
+ licenses:
85
+ - MIT
86
+ metadata: {}
87
+ post_install_message:
88
+ rdoc_options: []
89
+ require_paths:
90
+ - lib
91
+ required_ruby_version: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ required_rubygems_version: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: '0'
101
+ requirements: []
102
+ rubyforge_project:
103
+ rubygems_version: 2.4.8
104
+ signing_key:
105
+ specification_version: 4
106
+ summary: PassBy[ME] Mobile ID Client SDK
107
+ test_files: []