Skip to content

Commit b04b37f

Browse files
committed
[test] copy/adjust code from GH-150 to guard against regression(s)
1 parent 5f10844 commit b04b37f

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

src/test/ruby/x509/test_x509req.rb

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,43 @@ def test_version
3737
assert_equal 1, req.version
3838
end
3939

40+
# from GH-150
41+
def test_to_der_new_from_der; require 'base64'
42+
# Build the CSR
43+
key = OpenSSL::PKey::RSA.new TEST_KEY_RSA1024
44+
request = OpenSSL::X509::Request.new
45+
request.subject = OpenSSL::X509::Name.new([['CN', "common_name", OpenSSL::ASN1::UTF8STRING]])
46+
request.public_key = key.public_key
47+
request.sign(key, OpenSSL::Digest::SHA1.new)
48+
# One request is decoded from a `encode64` the other one is from `strict_encode64`
49+
decoded = Base64.decode64(Base64.encode64(request.to_der))
50+
strictly_decoded = Base64.decode64(Base64.strict_encode64(request.to_der))
51+
52+
# # Both strings are decoded identically
53+
# decoded == strictly_decoded #=> true
54+
# # .. even on byte level
55+
# decoded.split(//) == strictly_decoded.split(//) #= true
56+
57+
OpenSSL::X509::Request.new(strictly_decoded) #=> #<OpenSSL::X509::Request:0x4f290f46>
58+
OpenSSL::X509::Request.new(decoded) #=> OpenSSL::X509::RequestError: invalid certificate request data
59+
end
60+
61+
TEST_KEY_RSA1024 = <<-_end_of_pem_
62+
-----BEGIN RSA PRIVATE KEY-----
63+
MIICXgIBAAKBgQDLwsSw1ECnPtT+PkOgHhcGA71nwC2/nL85VBGnRqDxOqjVh7Cx
64+
aKPERYHsk4BPCkE3brtThPWc9kjHEQQ7uf9Y1rbCz0layNqHyywQEVLFmp1cpIt/
65+
Q3geLv8ZD9pihowKJDyMDiN6ArYUmZczvW4976MU3+l54E6lF/JfFEU5hwIDAQAB
66+
AoGBAKSl/MQarye1yOysqX6P8fDFQt68VvtXkNmlSiKOGuzyho0M+UVSFcs6k1L0
67+
maDE25AMZUiGzuWHyaU55d7RXDgeskDMakD1v6ZejYtxJkSXbETOTLDwUWTn618T
68+
gnb17tU1jktUtU67xK/08i/XodlgnQhs6VoHTuCh3Hu77O6RAkEA7+gxqBuZR572
69+
74/akiW/SuXm0SXPEviyO1MuSRwtI87B02D0qgV8D1UHRm4AhMnJ8MCs1809kMQE
70+
JiQUCrp9mQJBANlt2ngBO14us6NnhuAseFDTBzCHXwUUu1YKHpMMmxpnGqaldGgX
71+
sOZB3lgJsT9VlGf3YGYdkLTNVbogQKlKpB8CQQDiSwkb4vyQfDe8/NpU5Not0fII
72+
8jsDUCb+opWUTMmfbxWRR3FBNu8wnym/m19N4fFj8LqYzHX4KY0oVPu6qvJxAkEA
73+
wa5snNekFcqONLIE4G5cosrIrb74sqL8GbGb+KuTAprzj5z1K8Bm0UW9lTjVDjDi
74+
qRYgZfZSL+x1P/54+xTFSwJAY1FxA/N3QPCXCjPh5YqFxAMQs2VVYTfg+t0MEcJD
75+
dPMQD5JX6g5HKnHFg2mZtoXQrWmJSn7p8GJK8yNTopEErA==
76+
-----END RSA PRIVATE KEY-----
77+
_end_of_pem_
78+
4079
end

0 commit comments

Comments
 (0)