bankid 0.1.2 → 1.0.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fd9a18973962f369cd1bcca36382198a88401549f967f9896d0eaba2bf375afa
4
- data.tar.gz: 38dd6d6d7fbbc9f3d8e4669e828ef991f1b054d4c542c28a8350a1e52793b49c
3
+ metadata.gz: 34d2de71a8270e30e4fc403e9e8dec0719cb58d8f7e3545531ce378f254e364b
4
+ data.tar.gz: 2d8039bcc2abd1e9efab26f3c9c35cd9f50c796cc1feb1dcaef906a8bdcf1c59
5
5
  SHA512:
6
- metadata.gz: 8909aa90d7693ff7818d8a445ee9437d146a822063f41a4fc9d09c81bd267f0a9a8093e3b0fa5d7cc934ac1b73bc3dff800d0882bf9446659cd8920a6e95e947
7
- data.tar.gz: c3e0199dcc32101ee5ebc4c620a3f4fcf197818a82d7bca85adc714c0fd9cdd3cd3a665abbf93261534bf2edc170ec1faafea71c7ac397fe548358a54b7c79ad
6
+ metadata.gz: f394d00597819ff8edc988d1bbae42e91b1ad7c7cf4bd4a0e85e6b82d20c22f58d617d611d1d10cff0782ec34f97718bfe2407e562349a36053a32f7619d3099
7
+ data.tar.gz: 0a474c2a0c60b6335a3d20910574c140aab96bea4c87bce14d9ac22569bbd3cb9c3f224342d6278aaf3c6d438f6d4131399fa7bfdb2ad6097b2d3eb7f74140dc
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [1.0.1] - 2022-12-11
4
+
5
+ - Include new development client certificate instead of the old expired one
6
+
7
+ ## [1.0.0] - 2022-09-30
8
+
9
+ - Deprecate the `PKCS12` algorithm in favor of `X509`: [issue #3](https://github.com/johanhalse/bankid/issues/3)
10
+
3
11
  ## [0.1.2] - 2022-09-08
4
12
 
5
13
  - Add `pending?` method call for poll response object
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bankid (0.1.1)
4
+ bankid (0.1.2)
5
5
  http (~> 5.0.4)
6
6
  rqrcode (~> 2.1.0)
7
7
 
@@ -46,7 +46,7 @@ GEM
46
46
  rake (13.0.6)
47
47
  regexp_parser (2.2.0)
48
48
  rexml (3.2.5)
49
- rqrcode (2.1.1)
49
+ rqrcode (2.1.2)
50
50
  chunky_png (~> 1.0)
51
51
  rqrcode_core (~> 1.0)
52
52
  rqrcode_core (1.2.0)
data/README.md CHANGED
@@ -58,6 +58,26 @@ raise "logged in!" if response.status == "complete"
58
58
 
59
59
  Keep polling until your response status changes to "complete", and the response object will be a struct containing the `completion_data` property you're ultimately looking for.
60
60
 
61
+ ## Certificates
62
+
63
+ Your BankID provider will have given you a certificate. It might be in `.p12` format. If that's the case, you'll need to convert it to an OpenSSL X509 certificate - version 0.1.x of the BankID gem relied on PKCS12 which saw [big changes in OpenSSL v3](https://github.com/johanhalse/bankid/issues/3), so the implementation has been switched to X509 instead. The gem looks for a certificate and a key in these default locations:
64
+
65
+ ```
66
+ ./config/certs/#{environment}_client_certificate.pem
67
+ ./config/certs/#{environment}_client_certificate.key
68
+ ```
69
+
70
+ If you're upgrading from 0.1.x and want to convert an existing p12 key, it's pretty straightforward:
71
+
72
+ ```
73
+ # Export certificate
74
+ openssl pkcs12 -legacy -in my_certificate.p12 -clcerts -nokeys -out my_certificate.pem
75
+ # Export key
76
+ openssl pkcs12 -legacy -in my_certificate.p12 -clcerts -nocerts -out my_certificate.key
77
+ ```
78
+
79
+ That should hopefully get things running again.
80
+
61
81
  ## Development
62
82
 
63
83
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -0,0 +1,33 @@
1
+ Bag Attributes
2
+ localKeyID: A9 F3 0C D7 04 B6 7D 23 86 84 71 C3 E9 42 62 8B 1B D7 75 C3
3
+ Key Attributes: <No Attributes>
4
+ -----BEGIN ENCRYPTED PRIVATE KEY-----
5
+ MIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQIri8H50NwDzMCAggA
6
+ MAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECB8EBoVdZFjABIIEyKVg9eG/0Mw4
7
+ ZPLuiUQTvQqTMgbb9IbPZs8RO03I0AASSJ5aQ5K/kIdxJertX6gRKaFEgD0Dcqao
8
+ iNlVrHLQEqB+lDls9hLbZU6KLWC7OfHYdTfow/uLSvMM+m5lorw/48Qrr7iwXe4l
9
+ xA2/yXLu9zUKnQjRqL3hzqYI392EN/ZwNLNJqG+H0PZdUPjqQJG7KpduF6DdWRpI
10
+ oOsDbNfkFSV3IDVdG8hxxQVaFhR8oGcBLogetA7eDRqNRwMctJ/NmRa7YZGlLuHF
11
+ deF3fCetCUyWCMt4fmzME2KFXwepWBv4yF15MiIpkDydK2crF9X98D8IcNvMWBfB
12
+ UeHI+uvjFFcDklwSJQGUrOKkP9Zs34cr4Rwkis4EhZOL5GHcs60Wr3VFXjj8AaJf
13
+ 5bBgwXw7wbh+baXx+LJvouFnZRrLSkWOBWynX6ljR6fCsTzwZodP1i0H3TZdBnrP
14
+ g7E8gjsck4CHAsX2boujUsvgSf6DdMfZPsBiCLE3EY4vmJgqq8INxdX/N5V0Ip97
15
+ OqLMzzg/bBKLaBmMIFSPamKsF0PfbxBTE4h22+CS0/tIfm78ae42VcBrgPm5b2tF
16
+ kNaRui093YXQNBJJ65DmrFf5134KPx0GaSKzKHLQrj/lRpfP2SpucfJM9q9jUxsp
17
+ LT4Dov6moMnA1Sn8t8gdsFLrhelZuhMMIuAr7QVRk9PX4ZrXpgcnUfmXGYKD/8rM
18
+ 7LW0YXMpwlPVPtD5XS1pKUmD2esCcnMz1pdTKAxxWM8HnQ5jminhIS1IvENpEPae
19
+ ZJ8oaKZOxu8gVpsTlgj//Kbgf4qAAAOigKQlreYpZH3RPvbqgGcN/6vLe6RfG07H
20
+ zh01JDn5sZyMYeTVQqM4/4Hr8DYCC4HmBglIMSU3JqCpFWJXJplzACjotnZ9+lSr
21
+ eBAHv3F/5Ti5dd4tUe7QUUOx4XHC9ahc0Aln/mL90q6S21ylJK8En5Xg+prDBJ9D
22
+ R+uPUBBcefN6WkxerFLfeSzEjAeyyY+qqkL5VszQEXmh6otxFyRUnuPFad4mXaby
23
+ +JkxOxBB8k90VGId9mEqqZB1BnZ+ZkQY3LR/9Pq4eRIa8KGDjDy5oYdxjwvjBAfO
24
+ E4DKbxf4J3j9lV/Be0QO1emwx+6KupinGBbIH/RB9OY+rKtOE5ZxzYGJ9oKW3PAe
25
+ Py1/31EQDb6Y16c+Ahz7PbpZXXQEUZqXP4E02AkKIUMRa/gOWFUTDdR/qIokn3AA
26
+ /0v2HCsKfJuuFidjlSZv2aqNfwnozaguW5F2S7z9StE8hVPDRISGuSZPEEnHQp4r
27
+ 3ZGEsfs1MvxfO+H4XqNr00eCAwVVcSZVXVzjWFGFrpRi99nGmDi80N5i6PpwbDOM
28
+ hP43TjfSD2y98wCGVqiGulIJ73q9cwuU3cApIw79MX7PKrdy2V0pWpmQQgapFRHq
29
+ dnCSuk76YO5bCoxju99wZvujuaHCgNahBGU1EWWzXVVQlCfp9sCz/KUCRkAgD5bB
30
+ 71u9uleRbgQnndYUcN8oYCL+8JRcdWDcHOsLiTfLpIGoK7NTwmka7vLSB7WnKZwq
31
+ RPMYy8xDQ8NMh44URcDCWIOV/ngikFzAfp3SpQVY+YCOEaaRLyMkU0KhuZpZrfmZ
32
+ zbSRSx0NaQyeW+kr/3bPkw==
33
+ -----END ENCRYPTED PRIVATE KEY-----
@@ -0,0 +1,32 @@
1
+ Bag Attributes
2
+ localKeyID: A9 F3 0C D7 04 B6 7D 23 86 84 71 C3 E9 42 62 8B 1B D7 75 C3
3
+ subject=C = SE, O = Testbank A AB (publ), serialNumber = 5566304928, name = Test av BankID, CN = FP Testcert 4
4
+ issuer=C = SE, O = Testbank A AB (publ), serialNumber = 111111111111, CN = Testbank A RP CA v1 for BankID Test
5
+ -----BEGIN CERTIFICATE-----
6
+ MIIEyjCCArKgAwIBAgIIMLbIMaRHjMMwDQYJKoZIhvcNAQELBQAwcTELMAkGA1UE
7
+ BhMCU0UxHTAbBgNVBAoMFFRlc3RiYW5rIEEgQUIgKHB1YmwpMRUwEwYDVQQFEwwx
8
+ MTExMTExMTExMTExLDAqBgNVBAMMI1Rlc3RiYW5rIEEgUlAgQ0EgdjEgZm9yIEJh
9
+ bmtJRCBUZXN0MB4XDTIyMDgxNzIyMDAwMFoXDTI0MDgxODIxNTk1OVowcjELMAkG
10
+ A1UEBhMCU0UxHTAbBgNVBAoMFFRlc3RiYW5rIEEgQUIgKHB1YmwpMRMwEQYDVQQF
11
+ Ewo1NTY2MzA0OTI4MRcwFQYDVQQpDA5UZXN0IGF2IEJhbmtJRDEWMBQGA1UEAwwN
12
+ RlAgVGVzdGNlcnQgNDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL4L
13
+ 8ERHNSi7Jph9gj4ah7Ieok5lZHZbNyW1AiJJ1OfeD1lbAzxSidtTu6NfC83zxCjL
14
+ q091lHY5G7dpNDt1rN5Y+jQvrtcLc8nUpgqLfEUnbGKzZaHlO97jh6pqO8nj/mal
15
+ TrWI70Fr6SO3SxbsgxuwJXlRUAQxI0mPvD1gOd+uymA+EqdYS39ijC2eICHSf7bU
16
+ wvmscy8TAyEcT4GYmcjai1vbIjlhemmAv+NKJiSpD+zqvuHGIzBm71/Fd6cTAXqk
17
+ HkqTlJsxF2m6eojKCfcm5uAvSTXhVbGM155wmpzLskzkQ0dx6LbRNtA+BDe1MsAA
18
+ v8aE2FQ0j31ALgZePY0CAwEAAaNlMGMwEQYDVR0gBAowCDAGBgQqAwQFMA4GA1Ud
19
+ DwEB/wQEAwIHgDAfBgNVHSMEGDAWgBTiuVUIvGKgRjldgAxQSpIBy0zvizAdBgNV
20
+ HQ4EFgQUoiM2SwR2MdMVjaZz04J9LbOEau8wDQYJKoZIhvcNAQELBQADggIBAGBA
21
+ X1IC7mg1blaeqrTW+TtPkF7GvsbsWIh0RgG9DYRtXXofad3bn6kbDrfFXKZzv4JH
22
+ ERmJSyLXzMLoiwJB16V8Vz/kHT7AK94ZpLPjedPr2O4U2DGQXu1TwP5nkfgQxTeP
23
+ K/XnDVHNsMKqTnc+YNX6mj/UyLnbs8eq/a9uHOBJR30e0OPAdlc2fTbBT2Cui29E
24
+ ctcNH4LrcH4au9vO+RpEUm1hqZy3mHrx1p8Six6+qJSERNYIWTID8gklyp8MSyG5
25
+ q7dk0WcyvytM1dmVf/q+KriljaZ8x2zLhQRz9vpgnfwJ6Qh3cLVoPItVdQ03WpKW
26
+ WAB1NCMMyNcszkLZ9OO3IRz8iyWV/KWGI07ngVuGa7dHuTje6ZjcObBCr2e4uuU+
27
+ CLENcretUAv0BtCsOBhQLXZ0qzqrgsVebTRQzm2zTM0yfBpcTtPd3MOMFeMQTHJJ
28
+ 8QH6twAKeJfY1lUCTXJYy1ZcrKnrNehksST8tk98Km9t5M2X59QZk7mJzzsUbnWr
29
+ t+izid7xF7FAgDYj9XJgQHz04a4RjRSw5/6dgexAgvGoeOkG7uUhYd5DEYQCyQyR
30
+ Zy69pJN32L0nM2dC2e3NFU5BOBwocoKza3hdtSqqvIkj2kzyeU38uaJUco/Vk3OU
31
+ s+sQNZbk5C1pxkLLwzu815tKg77Om4Nwbi+bgDvI
32
+ -----END CERTIFICATE-----
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Bankid
4
- VERSION = "0.1.2"
4
+ VERSION = "1.0.1"
5
5
  end
data/lib/bankid.rb CHANGED
@@ -36,7 +36,7 @@ module Bankid
36
36
  @env = env
37
37
  @url = Bankid.const_get("#{env.upcase}_URL")
38
38
  @cert_password = cert_password
39
- @cert, @root_cert = load_certificates
39
+ @cert, @key, @root_cert = load_certificates
40
40
  end
41
41
 
42
42
  def generate_qr(start_token:, start_secret:, seconds:)
@@ -81,7 +81,8 @@ module Bankid
81
81
  return if @env == "test"
82
82
 
83
83
  [
84
- OpenSSL::PKCS12.new(File.read(cert_path("client_certificate.p12")), @cert_password),
84
+ OpenSSL::X509::Certificate.new(File.read(cert_path("client_certificate.pem"))),
85
+ OpenSSL::PKey::RSA.new(File.read(cert_path("client_certificate.key")), @cert_password),
85
86
  OpenSSL::X509::Certificate.new(File.read(cert_path("bankid_certificate.pem")))
86
87
  ]
87
88
  end
@@ -95,8 +96,8 @@ module Bankid
95
96
  def ssl_context
96
97
  OpenSSL::SSL::SSLContext.new.tap do |ctx|
97
98
  ctx.add_certificate(
98
- @cert.certificate,
99
- @cert.key,
99
+ @cert,
100
+ @key,
100
101
  [@root_cert]
101
102
  )
102
103
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bankid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Johan Halse
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-09-08 00:00:00.000000000 Z
11
+ date: 2022-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http
@@ -55,7 +55,9 @@ files:
55
55
  - bin/console
56
56
  - bin/setup
57
57
  - config/certs/development_bankid_certificate.pem
58
+ - config/certs/development_client_certificate.key
58
59
  - config/certs/development_client_certificate.p12
60
+ - config/certs/development_client_certificate.pem
59
61
  - config/certs/production_bankid_certificate.pem
60
62
  - lib/bankid.rb
61
63
  - lib/bankid/authentication.rb
@@ -70,7 +72,7 @@ metadata:
70
72
  source_code_uri: https://github.com/johanhalse/bankid
71
73
  changelog_uri: https://github.com/johanhalse/bankid/CHANGELOG.md
72
74
  rubygems_mfa_required: 'true'
73
- post_install_message:
75
+ post_install_message:
74
76
  rdoc_options: []
75
77
  require_paths:
76
78
  - lib
@@ -86,7 +88,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
86
88
  version: '0'
87
89
  requirements: []
88
90
  rubygems_version: 3.3.7
89
- signing_key:
91
+ signing_key:
90
92
  specification_version: 4
91
93
  summary: BankID authentication for Ruby.
92
94
  test_files: []