r509 0.8.1 → 0.9

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 (203) hide show
  1. data/README.md +343 -151
  2. data/Rakefile +26 -23
  3. data/bin/r509 +126 -112
  4. data/bin/r509-parse +24 -24
  5. data/doc/R509.html +169 -7
  6. data/doc/R509/ASN1.html +370 -0
  7. data/doc/R509/ASN1/GeneralName.html +1121 -0
  8. data/doc/R509/ASN1/GeneralNames.html +843 -0
  9. data/doc/R509/ASN1/NoticeReference.html +392 -0
  10. data/doc/R509/ASN1/PolicyInformation.html +387 -0
  11. data/doc/R509/ASN1/PolicyQualifiers.html +455 -0
  12. data/doc/R509/ASN1/UserNotice.html +386 -0
  13. data/doc/R509/{Crl.html → CRL.html} +7 -7
  14. data/doc/R509/CRL/Administrator.html +1559 -0
  15. data/doc/R509/{Crl/Parser.html → CRL/SignedList.html} +501 -210
  16. data/doc/R509/{Csr.html → CSR.html} +444 -314
  17. data/doc/R509/Cert.html +866 -617
  18. data/doc/R509/Cert/Extensions.html +52 -41
  19. data/doc/R509/Cert/Extensions/AuthorityInfoAccess.html +70 -35
  20. data/doc/R509/Cert/Extensions/AuthorityKeyIdentifier.html +387 -4
  21. data/doc/R509/Cert/Extensions/BasicConstraints.html +61 -25
  22. data/doc/R509/Cert/Extensions/CRLDistributionPoints.html +354 -0
  23. data/doc/R509/Cert/Extensions/CertificatePolicies.html +340 -0
  24. data/doc/R509/Cert/Extensions/ExtendedKeyUsage.html +440 -49
  25. data/doc/R509/Cert/Extensions/{CrlDistributionPoints.html → InhibitAnyPolicy.html} +52 -35
  26. data/doc/R509/Cert/Extensions/KeyUsage.html +247 -121
  27. data/doc/R509/Cert/Extensions/NameConstraints.html +445 -0
  28. data/doc/R509/Cert/Extensions/OCSPNoCheck.html +239 -0
  29. data/doc/R509/Cert/Extensions/PolicyConstraints.html +424 -0
  30. data/doc/R509/Cert/Extensions/SubjectAlternativeName.html +437 -62
  31. data/doc/R509/Cert/Extensions/SubjectKeyIdentifier.html +52 -10
  32. data/doc/R509/CertificateAuthority.html +4 -4
  33. data/doc/R509/CertificateAuthority/Signer.html +154 -187
  34. data/doc/R509/Config.html +6 -6
  35. data/doc/R509/Config/{CaConfig.html → CAConfig.html} +451 -348
  36. data/doc/R509/Config/{CaConfigPool.html → CAConfigPool.html} +47 -47
  37. data/doc/R509/Config/CAProfile.html +1015 -0
  38. data/doc/R509/Config/SubjectItemPolicy.html +86 -86
  39. data/doc/R509/IOHelpers.html +22 -22
  40. data/doc/R509/MessageDigest.html +14 -14
  41. data/doc/R509/NameSanitizer.html +53 -53
  42. data/doc/R509/{Ocsp.html → OCSP.html} +9 -9
  43. data/doc/R509/{Ocsp → OCSP}/Request.html +7 -7
  44. data/doc/R509/{Ocsp → OCSP}/Request/Nonce.html +56 -11
  45. data/doc/R509/{Ocsp → OCSP}/Response.html +44 -44
  46. data/doc/R509/{OidMapper.html → OIDMapper.html} +23 -39
  47. data/doc/R509/PrivateKey.html +415 -168
  48. data/doc/R509/R509Error.html +3 -3
  49. data/doc/R509/{Spki.html → SPKI.html} +354 -192
  50. data/doc/R509/Subject.html +224 -113
  51. data/doc/R509/Validity.html +27 -5
  52. data/doc/R509/Validity/Checker.html +13 -13
  53. data/doc/R509/Validity/DefaultChecker.html +13 -13
  54. data/doc/R509/Validity/DefaultWriter.html +14 -14
  55. data/doc/R509/Validity/Status.html +39 -39
  56. data/doc/R509/Validity/Writer.html +18 -18
  57. data/doc/_index.html +138 -35
  58. data/doc/class_list.html +1 -1
  59. data/doc/css/style.css +10 -0
  60. data/doc/file.README.html +368 -171
  61. data/doc/file.r509.html +92 -69
  62. data/doc/frames.html +1 -1
  63. data/doc/index.html +368 -171
  64. data/doc/method_list.html +910 -390
  65. data/doc/top-level-namespace.html +3 -3
  66. data/lib/r509.rb +32 -16
  67. data/lib/r509/asn1.rb +375 -0
  68. data/lib/r509/cert.rb +381 -364
  69. data/lib/r509/cert/extensions.rb +443 -76
  70. data/lib/r509/certificate_authority.rb +407 -0
  71. data/lib/r509/config.rb +547 -351
  72. data/lib/r509/crl.rb +336 -366
  73. data/lib/r509/csr.rb +278 -289
  74. data/lib/r509/ec-hack.rb +37 -0
  75. data/lib/r509/exceptions.rb +3 -3
  76. data/lib/r509/io_helpers.rb +44 -44
  77. data/lib/r509/message_digest.rb +53 -0
  78. data/lib/r509/ocsp.rb +80 -70
  79. data/lib/r509/oid_mapper.rb +32 -0
  80. data/lib/r509/private_key.rb +228 -0
  81. data/lib/r509/spki.rb +145 -93
  82. data/lib/r509/subject.rb +203 -110
  83. data/lib/r509/validity.rb +70 -68
  84. data/lib/r509/version.rb +2 -2
  85. data/r509.yaml +92 -69
  86. data/spec/asn1_spec.rb +402 -0
  87. data/spec/cert/extensions_spec.rb +957 -494
  88. data/spec/cert_spec.rb +382 -307
  89. data/spec/certificate_authority_spec.rb +668 -250
  90. data/spec/config_spec.rb +515 -302
  91. data/spec/crl_spec.rb +197 -198
  92. data/spec/csr_spec.rb +334 -289
  93. data/spec/fixtures.rb +247 -171
  94. data/spec/fixtures/cert1.der +0 -0
  95. data/spec/fixtures/cert1.pem +0 -0
  96. data/spec/fixtures/cert1_public_key_modulus.txt +0 -0
  97. data/spec/fixtures/cert3.p12 +0 -0
  98. data/spec/fixtures/cert3.pem +0 -0
  99. data/spec/fixtures/cert3_key.pem +0 -0
  100. data/spec/fixtures/cert3_key_des3.pem +0 -0
  101. data/spec/fixtures/cert4.pem +0 -0
  102. data/spec/fixtures/cert5.pem +0 -0
  103. data/spec/fixtures/cert6.pem +0 -0
  104. data/spec/fixtures/cert_expired.pem +0 -0
  105. data/spec/fixtures/cert_inhibit.pem +24 -0
  106. data/spec/fixtures/cert_name_constraints.pem +29 -0
  107. data/spec/fixtures/cert_not_yet_valid.pem +0 -0
  108. data/spec/fixtures/cert_ocsp_no_check.pem +18 -0
  109. data/spec/fixtures/cert_policy_constraints.pem +31 -0
  110. data/spec/fixtures/cert_san.pem +0 -0
  111. data/spec/fixtures/cert_san2.pem +0 -0
  112. data/spec/fixtures/cert_unknown_extension.pem +28 -0
  113. data/spec/fixtures/config_pool_test_minimal.yaml +11 -11
  114. data/spec/fixtures/config_test.yaml +54 -36
  115. data/spec/fixtures/config_test_dsa.yaml +35 -0
  116. data/spec/fixtures/config_test_ec.yaml +35 -0
  117. data/spec/fixtures/config_test_engine_key.yaml +5 -5
  118. data/spec/fixtures/config_test_engine_no_key_name.yaml +4 -4
  119. data/spec/fixtures/config_test_minimal.yaml +4 -4
  120. data/spec/fixtures/config_test_password.yaml +5 -5
  121. data/spec/fixtures/config_test_various.yaml +111 -74
  122. data/spec/fixtures/crl_list_file.txt +0 -0
  123. data/spec/fixtures/crl_with_reason.pem +0 -0
  124. data/spec/fixtures/csr1.der +0 -0
  125. data/spec/fixtures/csr1.pem +0 -0
  126. data/spec/fixtures/csr1_key.der +0 -0
  127. data/spec/fixtures/csr1_key.pem +0 -0
  128. data/spec/fixtures/csr1_key_encrypted_des3.pem +0 -0
  129. data/spec/fixtures/csr1_newlines.pem +0 -0
  130. data/spec/fixtures/csr1_no_begin_end.pem +0 -0
  131. data/spec/fixtures/csr1_public_key_modulus.txt +0 -0
  132. data/spec/fixtures/csr2.pem +0 -0
  133. data/spec/fixtures/csr2_key.pem +0 -0
  134. data/spec/fixtures/csr3.pem +0 -0
  135. data/spec/fixtures/csr4.pem +0 -0
  136. data/spec/fixtures/csr_dsa.pem +0 -0
  137. data/spec/fixtures/csr_invalid_signature.pem +0 -0
  138. data/spec/fixtures/dsa_key.pem +0 -0
  139. data/spec/fixtures/dsa_root.cer +28 -0
  140. data/spec/fixtures/dsa_root.key +20 -0
  141. data/spec/fixtures/ec_csr2.der +0 -0
  142. data/spec/fixtures/ec_csr2.pem +8 -0
  143. data/spec/fixtures/ec_key1.der +0 -0
  144. data/spec/fixtures/ec_key1.pem +6 -0
  145. data/spec/fixtures/ec_key1_encrypted.pem +9 -0
  146. data/spec/fixtures/ec_key2.pem +6 -0
  147. data/spec/fixtures/hmacsha1.sig +1 -0
  148. data/spec/fixtures/hmacsha512.sig +1 -0
  149. data/spec/fixtures/key4.pem +0 -0
  150. data/spec/fixtures/key4_encrypted_des3.pem +0 -0
  151. data/spec/fixtures/missing_key_identifier_ca.cer +0 -0
  152. data/spec/fixtures/missing_key_identifier_ca.key +0 -0
  153. data/spec/fixtures/ocsptest.r509.local.pem +0 -0
  154. data/spec/fixtures/ocsptest.r509.local_ocsp_request.der +0 -0
  155. data/spec/fixtures/ocsptest2.r509.local.pem +0 -0
  156. data/spec/fixtures/second_ca.cer +0 -0
  157. data/spec/fixtures/second_ca.key +0 -0
  158. data/spec/fixtures/spkac.der +0 -0
  159. data/spec/fixtures/spkac.txt +0 -0
  160. data/spec/fixtures/spkac_dsa.txt +1 -1
  161. data/spec/fixtures/spkac_dsa_no_verify.txt +1 -0
  162. data/spec/fixtures/spkac_ec.txt +1 -0
  163. data/spec/fixtures/spkac_rsa_newlines.txt +13 -0
  164. data/spec/fixtures/stca.pem +0 -0
  165. data/spec/fixtures/stca_ocsp_request.der +0 -0
  166. data/spec/fixtures/stca_ocsp_response.der +0 -0
  167. data/spec/fixtures/test1.csr +0 -0
  168. data/spec/fixtures/test_ca.cer +0 -0
  169. data/spec/fixtures/test_ca.key +0 -0
  170. data/spec/fixtures/test_ca.p12 +0 -0
  171. data/spec/fixtures/test_ca_des3.key +0 -0
  172. data/spec/fixtures/test_ca_ec.cer +14 -0
  173. data/spec/fixtures/test_ca_ec.key +6 -0
  174. data/spec/fixtures/test_ca_ec_ee.cer +22 -0
  175. data/spec/fixtures/test_ca_ec_ee.key +6 -0
  176. data/spec/fixtures/test_ca_ocsp.cer +0 -0
  177. data/spec/fixtures/test_ca_ocsp.key +0 -0
  178. data/spec/fixtures/test_ca_ocsp.p12 +0 -0
  179. data/spec/fixtures/test_ca_ocsp_chain.txt +0 -0
  180. data/spec/fixtures/test_ca_ocsp_response.der +0 -0
  181. data/spec/fixtures/test_ca_subroot.cer +0 -0
  182. data/spec/fixtures/test_ca_subroot.key +0 -0
  183. data/spec/fixtures/test_ca_subroot_ocsp.cer +0 -0
  184. data/spec/fixtures/test_ca_subroot_ocsp.key +0 -0
  185. data/spec/fixtures/test_ca_subroot_ocsp_response.der +0 -0
  186. data/spec/fixtures/unknown_oid.csr +0 -0
  187. data/spec/message_digest_spec.rb +104 -84
  188. data/spec/ocsp_spec.rb +105 -105
  189. data/spec/oid_mapper_spec.rb +21 -21
  190. data/spec/private_key_spec.rb +275 -0
  191. data/spec/r509_spec.rb +35 -0
  192. data/spec/spec_helper.rb +15 -6
  193. data/spec/spki_spec.rb +221 -142
  194. data/spec/subject_spec.rb +232 -164
  195. data/spec/validity_spec.rb +91 -91
  196. metadata +79 -25
  197. data/doc/R509/Config/CaProfile.html +0 -651
  198. data/doc/R509/Crl/Administrator.html +0 -2073
  199. data/lib/r509/certificateauthority.rb +0 -290
  200. data/lib/r509/messagedigest.rb +0 -49
  201. data/lib/r509/oidmapper.rb +0 -32
  202. data/lib/r509/privatekey.rb +0 -185
  203. data/spec/privatekey_spec.rb +0 -198
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,28 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIE1jCCBH2gAwIBAgITBhgK1HP+y01CN6gLKGvT1Ay+OjAJBgcqhkjOOAQDMFsx
3
+ CzAJBgNVBAYTAlVTMREwDwYDVQQIDAhJbGxpbm9pczEQMA4GA1UEBwwHQ2hpY2Fn
4
+ bzERMA8GA1UECgwIcjUwOSBMTEMxFDASBgNVBAMMC3I1MDkgRFNBIENBMB4XDTEz
5
+ MDEyMzE4NDgzMloXDTMzMDExOTAwNDgzMlowWzELMAkGA1UEBhMCVVMxETAPBgNV
6
+ BAgMCElsbGlub2lzMRAwDgYDVQQHDAdDaGljYWdvMREwDwYDVQQKDAhyNTA5IExM
7
+ QzEUMBIGA1UEAwwLcjUwOSBEU0EgQ0EwggNGMIICOQYHKoZIzjgEATCCAiwCggEB
8
+ AI/L+u9/bYsvJFq1bG5R8E2lAvpTzgIl41E1iBKo0nbaygMqOo3LsICkMA5a1/5B
9
+ WKVpJ7ru+baOhrbQ9MfqUS1jMiKYrdFQE+38kd4RzNIpDQTesH/0NWHCSQO1//PX
10
+ GL+QtvE6K0EvJy6nUgquDuCpSyIDFi2DdmHNZsI+tf7I6sDjCrvPWo+haWHoZkp6
11
+ ElE1BDZl/tfhyXRbxXssfx0Sf0OdjxJIsXSkZptjyLIpbtyw61TXrp7GW09D9dCM
12
+ AdHxirWn9I0zt7lR28grEFcS8D0+qgcaBF0Tyvcqh6zamZtgvT8T5dtWVUTkE1lu
13
+ A641GKQGZxBKFzEgqPLKAzMCIQCcAskwfGVpQIkwv9vGFHff6p/ys4HnXOMtan06
14
+ 0aTRoQKCAQAbNhiR+dEkr0eoMH3ObKi5Qt4H6aJFM15Dv+4y6FOcKjhq9AU5nerQ
15
+ HqmgPtgAeieR+9nheC4o5ijWpTBYw28aT7+svJy1Qu2oEuFmFNOnlkLtm5GPxoU3
16
+ IzUqikRDlGQExWbIGPAmrh/iXVtBpzRw3/GdhWCqvgtVGumIEeKougSFFK4CnWfF
17
+ g6/PyVSbbNY97m+goAhliELcKTXJRwX89SqfVBdHAIcFAYt7jc8DZp3aBtQEQTxV
18
+ EJL8S3YIq1xE46iQD9qhmS2d2enn3ooN0JaNZzXSVYr811gk3187eb6KMl8IoKGo
19
+ OaCaR6jELgEqdazRzmtBsx6eV+NJ5Ri6A4IBBQACggEAV2bO5agD5P6hApVFqTft
20
+ UjqHLtZxlGMy0R3PaF3WSQOjCXoBiCrs3fA5WJMaQcQs3CgMFQrMAfsym6x9tCif
21
+ BYnYDN67/OE9B2SW7UBKUGD1DIKNPTNzNApaHNKgd75TnSIE40aMrB/achiHCuS7
22
+ 9OIJb29soq/3NXCUL86BK/OKy6ZNlasH74+y+7yDEHeOeP21lzLAE3UNXAAIhU3y
23
+ 6Q0JfXSCL3O+OLGlWZGU0pdRKGFIvDT1IUY+2FQGTlkFl1/PCm07NxDXPC9KlhKr
24
+ hgBU4hRTbeYOaSFLMeyl81L9XcKzKbWKocEual6xNlMfEADxnISMocMW3DZZUROx
25
+ RaMyMDAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUTEO7z1ZVIF5Z09S3tz01
26
+ ThzCewswCQYHKoZIzjgEAwNIADBFAiAaSZyJzZ87joF64KfDtTO24NXUFZRDLrAa
27
+ xV3VlyyUrgIhAJEZJ4OB5ziXZHHi8bW6ePoAA2WMuVoHKcpRuj7dgb/2
28
+ -----END CERTIFICATE-----
@@ -0,0 +1,20 @@
1
+ -----BEGIN DSA PRIVATE KEY-----
2
+ MIIDVQIBAAKCAQEAj8v6739tiy8kWrVsblHwTaUC+lPOAiXjUTWIEqjSdtrKAyo6
3
+ jcuwgKQwDlrX/kFYpWknuu75to6GttD0x+pRLWMyIpit0VAT7fyR3hHM0ikNBN6w
4
+ f/Q1YcJJA7X/89cYv5C28TorQS8nLqdSCq4O4KlLIgMWLYN2Yc1mwj61/sjqwOMK
5
+ u89aj6FpYehmSnoSUTUENmX+1+HJdFvFeyx/HRJ/Q52PEkixdKRmm2PIsilu3LDr
6
+ VNeunsZbT0P10IwB0fGKtaf0jTO3uVHbyCsQVxLwPT6qBxoEXRPK9yqHrNqZm2C9
7
+ PxPl21ZVROQTWW4DrjUYpAZnEEoXMSCo8soDMwIhAJwCyTB8ZWlAiTC/28YUd9/q
8
+ n/Kzgedc4y1qfTrRpNGhAoIBABs2GJH50SSvR6gwfc5sqLlC3gfpokUzXkO/7jLo
9
+ U5wqOGr0BTmd6tAeqaA+2AB6J5H72eF4LijmKNalMFjDbxpPv6y8nLVC7agS4WYU
10
+ 06eWQu2bkY/GhTcjNSqKREOUZATFZsgY8CauH+JdW0GnNHDf8Z2FYKq+C1Ua6YgR
11
+ 4qi6BIUUrgKdZ8WDr8/JVJts1j3ub6CgCGWIQtwpNclHBfz1Kp9UF0cAhwUBi3uN
12
+ zwNmndoG1ARBPFUQkvxLdgirXETjqJAP2qGZLZ3Z6efeig3Qlo1nNdJVivzXWCTf
13
+ Xzt5vooyXwigoag5oJpHqMQuASp1rNHOa0GzHp5X40nlGLoCggEAV2bO5agD5P6h
14
+ ApVFqTftUjqHLtZxlGMy0R3PaF3WSQOjCXoBiCrs3fA5WJMaQcQs3CgMFQrMAfsy
15
+ m6x9tCifBYnYDN67/OE9B2SW7UBKUGD1DIKNPTNzNApaHNKgd75TnSIE40aMrB/a
16
+ chiHCuS79OIJb29soq/3NXCUL86BK/OKy6ZNlasH74+y+7yDEHeOeP21lzLAE3UN
17
+ XAAIhU3y6Q0JfXSCL3O+OLGlWZGU0pdRKGFIvDT1IUY+2FQGTlkFl1/PCm07NxDX
18
+ PC9KlhKrhgBU4hRTbeYOaSFLMeyl81L9XcKzKbWKocEual6xNlMfEADxnISMocMW
19
+ 3DZZUROxRQIgAjscZsAddwQTxoQob5lNxlaqDmNJ8Z9ccpwJ3985Y0Y=
20
+ -----END DSA PRIVATE KEY-----
Binary file
@@ -0,0 +1,8 @@
1
+ -----BEGIN CERTIFICATE REQUEST-----
2
+ MIIBCDCBkQIBADASMRAwDgYDVQQDDAdlYy10ZXN0MHYwEAYHKoZIzj0CAQYFK4EE
3
+ ACIDYgAEKEBA2qgDKNLOAWJ6hl5xtabcdeCH2rJGr39M9aWGo0z3zk746RSwI7Vm
4
+ rev6yRbIwJ/1Yn5ScRwiD8esdGQ0BCbF8gPr8wgdlFfpo8I9OYHRC0tav/gdvl+h
5
+ VUCkoQ+toAAwCQYHKoZIzj0EAQNnADBkAjBROBJwraCXt0UfSyeAKQGuLpYSvBAH
6
+ DNMcTe0R7SmRi3jbbtPFq/BoiDRGSgm8iDwCMBHsD9ffUJAosVHKh3Re+HrgVdPk
7
+ xNO6R2WTttC6UjOi2Hx5pciuYQFBhEDSdssS0g==
8
+ -----END CERTIFICATE REQUEST-----
Binary file
@@ -0,0 +1,6 @@
1
+ -----BEGIN EC PRIVATE KEY-----
2
+ MIGkAgEBBDC3557PgR8IoKQQbdWXxCmJFkwhZovgm/qNnHt675cDKrsEjF9efI9G
3
+ l6uGQmFVyoigBwYFK4EEACKhZANiAARihDoG7rIlGjAWLlOKRtNbdE+q5ypm0JbQ
4
+ bEG3KN7sJTGFuMIN7Bk44iFwr3XsmWiem+1X84zoyU1RzDUnptpI/MclKCeVJ+1O
5
+ dLVCyUjBVILf2tvEvz1L/vAOZXUlriI=
6
+ -----END EC PRIVATE KEY-----
@@ -0,0 +1,9 @@
1
+ -----BEGIN EC PRIVATE KEY-----
2
+ Proc-Type: 4,ENCRYPTED
3
+ DEK-Info: AES-256-CBC,E531E3D165966F62B139CB819A720F8A
4
+
5
+ tnrhm1mkRbQeORVBxQE7z2Jr3jNLOFhF1nWr9HGz2VZmHkoPafJJHma5CJsVbo0g
6
+ xCw9CdNbhWYDJgtIcsorW6jCGG4QFDHdrXy9dFOC8d6DGeNkd/Ov7u3kSo9JcgRY
7
+ WFjcfp3/t/1NvpmdDJ7d4uqQekjgSuNXJCOnxsHTKIARtkNUl/2lnNCwVeotPMAd
8
+ o9b4V3kq9GI3uKh3ur1EeRXhhs3OFDf4+lQ8szJeAew=
9
+ -----END EC PRIVATE KEY-----
@@ -0,0 +1,6 @@
1
+ -----BEGIN EC PRIVATE KEY-----
2
+ MIGkAgEBBDBBfAGetVeCcM/4L9ZSHPEfuu+OK/CI8F5KP6Js1ZVX1/TZSG0O0fq2
3
+ qxOzGT0qJEygBwYFK4EEACKhZANiAAQoQEDaqAMo0s4BYnqGXnG1ptx14Ifaskav
4
+ f0z1pYajTPfOTvjpFLAjtWat6/rJFsjAn/ViflJxHCIPx6x0ZDQEJsXyA+vzCB2U
5
+ V+mjwj05gdELS1q/+B2+X6FVQKShD60=
6
+ -----END EC PRIVATE KEY-----
@@ -0,0 +1 @@
1
+ ��}D�寡@{��G��Z`&*
@@ -0,0 +1 @@
1
+ ���l�=���1�;+f��3��l����j�Y��T4m�廮��"%^��o zVz(��+��
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1 +1 @@
1
- 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
@@ -0,0 +1 @@
1
+ MIIDVjCCA0AwggM6MIICLQYHKoZIzjgEATCCAiACggEBAL+t5gSONzzU5ItnfoeMjlsIwCECrgTrLLXEalI6OvHHPRayTzSklkeBrn5QUA4hd3dUpnC9GadCDWMwhOVVbjPKLA59VH6l9GoHoBv4ZprjvewELZsq5ebs9J8Aup2smatu/xQNLO33Iu5iwvlzaFeXFETCXQoz0gF9w21oKhBU/iqUKN2jVahRzm5tYeA+QZ/Uyk5wMxN0PYbKqIWTD2LtW/NC2BZWJ2genMMkS6cqoiFIQAprvoAVToVdBCydwqNAXx5Re+nepQVi9W2pP2CF+ESn5wXB8EPmV1HFg7gNKRA+WQzLJu/aoIk9gz42Ro85B8/KeIo8t5DwNByKMb8CFQCCL/XSNOBzuQHPWUH1jh9TjnHUDQKCAQBLfO1x3DU5ZezBDUQamgb8JJQ6MtZkKd1e9E1D5n14nZl3CuwywEFdySlwiAhy2kX++N0eEVo+SAE4e6bXVYYfBi/TtunqjiZBFSM5uCgxWxUo7mx7eUWNIfPblz9vwwP5OXF0wnmd0jUSgqotiELDV6c0lbuqxJMnhkFMVeYNcxafV2EDb7op6e6/sEn4o7G3zubz+/oTYgXxML7iz1ucONwQldQAby5zM1wHNSxkEwoasrifE7SPYo08w4aL7s6bt76t6fgw6sxvokFCXAs/zA30FqDIn3vzVmjXZeyVzc++nK/0nPwVbGaMdvpiR2dqbTrJRYRKCDUJxqG0NrrKA4IBBQACggEATAi/5fLXZknICs99Qx9q4hJLIXq8jJ9qyndt36lFO2ZW8T5UNoTNX2QxoxQ3fSq/oGi3CAy43cBlr8LepVnwtYTJeisjW5tptGvG3hrtQipvNBgyYYvKriGYq6OICZ2vsF/wte/ss7CuFppi4ccgIq9QrmivOwM8GObuwfffRpLEVsyvt5zH4I2gpXhumBbO2mUdYbS7e4HCeD2pfOpi32evXoWZH9wTr/EPxg4GWGOGuWu3jWV1D1QvhpUeBabYG6rbzTWi5crUEZkjrmogAgkaPRcBf5PFKXARPNwRmXC5B0ylBurJHD3TdjJd9K9rORHvJn0mYjpaHF30ptE/HBYAMA0GCSqGSIb3DQEBBAUAAwEA
@@ -0,0 +1 @@
1
+ MIGEMHowdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASScOL9ocL2zWwGhTk6eh9WVWylBASaeOj8p7pxY0svQvDpjvu0P8h+8B+1S11DSUYqLidE1pStpMBRL8bc82xF6DMutInlOUMoDNfyitjX7jeBzcS33X17G5/uHoJZuQ4WADADBgEAAwEA
@@ -0,0 +1,13 @@
1
+ MIICQDCCASgwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1Jr6ZBmTj
2
+ uvdQhn5n/Ywg1gSsCtdBtwbZD5Ylc7budhmbeaE9Y5IRiJZ+CE0a1Ez8ez0Q5K9R
3
+ Bwb8A5lUTmsr8J20A5gddmrmY65f9yhTZt98BlmuFfxtL60sTyPr2dgFvUf2FSsP
4
+ Y4SXKpB9XQF12SN/Ime7HvgHWKfwQwRKxFjBUm8pwROxrukIdsMTELadLKgo01lO
5
+ ctVMZgzSIzDTOwdyyimZNPilbZAL9w509mMMt6HwAiWSl7vSxoOJAna0xoM6FA+Q
6
+ nG9v+r1FdDU2JAVbBLKw6+1+MX9Yp5aCJEl5OtHDIvTQaKaQ4y0yTZb1VIz3NQjc
7
+ kux/JOmrytnLAgMBAAEWADANBgkqhkiG9w0BAQQFAAOCAQEAKA7Pri+xjq1AUM93
8
+ v2QakHO/ZcuOwx7bim/v/mF8ZF4khCO+m20qf1hsWuaz9e1WNff1e4W8APdOIvbd
9
+ 5ZP2MjjJU3K1e5/cXFHSLFxbiM3RPqQsMGLkh9K5qP4s8AVYSGtHk4OaE7shbF6p
10
+ wETlQ4Mbwl6t3Xg+M4wpe1ZnePfzwXQ6pku07ceiG9zC7WKeJ+O4F4ShZ5zR8RLd
11
+ dA4hf0GgKDUDmp4JEV+6v3+SOgg7n5YEh7zqtqtEVJwU0ZWe2o/G1LSfEXpilg5C
12
+ czonZ4RtAYFtWfxeQed9+LVaVbm5mRvEqfoMbdFxEpK3/PWpLraPgm3hXmcmx+O5
13
+ ACewiw==
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,14 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIICJzCCAaygAwIBAgITBhgGAz3nZpKHtz6KQjnGF3l8IzAKBggqhkjOPQQDAjBb
3
+ MQswCQYDVQQGEwJVUzERMA8GA1UECAwISWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNh
4
+ Z28xETAPBgNVBAoMCHI1MDkgTExDMRQwEgYDVQQDDAtyNTA5IEVDQyBDQTAeFw0x
5
+ MzAxMjMxNDE1MjBaFw0zMzAxMTgyMDE1MjBaMFsxCzAJBgNVBAYTAlVTMREwDwYD
6
+ VQQIDAhJbGxpbm9pczEQMA4GA1UEBwwHQ2hpY2FnbzERMA8GA1UECgwIcjUwOSBM
7
+ TEMxFDASBgNVBAMMC3I1MDkgRUNDIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE
8
+ FoGSwxFhGtPcBRnmKSwVnYRhniE86GmTTCGyb02ch5ZENzmjdTuR4MoeBmG5RXzH
9
+ mX1I6rcFW5sJWnmOncE0zcl7qGxash/+3wFm3qwwR1YUpDZ+TeYtezqkEegN+I2T
10
+ ozIwMDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS27qtirnzRTXfTrJOA46dI
11
+ r1hc4jAKBggqhkjOPQQDAgNpADBmAjEAgy6c00RdXZ5wmRo5uFOu9aa5kUJo912+
12
+ hiHmddmFVCyQcvsX+hq2GvFKLhwxty9jAjEA4e4WY48QArCidovB/iYXRkvE5efL
13
+ oqXZOHh/QzwiNz66ZIGR8tv2iLoRXoG4fiWG
14
+ -----END CERTIFICATE-----
@@ -0,0 +1,6 @@
1
+ -----BEGIN EC PRIVATE KEY-----
2
+ MIGkAgEBBDCVvOkiIED5VN04e0/zOjv2UHZ94vRt4NP939/UnPkxxoy8yQRCDW9v
3
+ vJp4kJ2uz12gBwYFK4EEACKhZANiAAQWgZLDEWEa09wFGeYpLBWdhGGeITzoaZNM
4
+ IbJvTZyHlkQ3OaN1O5Hgyh4GYblFfMeZfUjqtwVbmwlaeY6dwTTNyXuobFqyH/7f
5
+ AWberDBHVhSkNn5N5i17OqQR6A34jZM=
6
+ -----END EC PRIVATE KEY-----
@@ -0,0 +1,22 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDjzCCAxWgAwIBAgITBhgHDloQ4BfASRTlBAefPs+XLzAKBggqhkjOPQQDAzBb
3
+ MQswCQYDVQQGEwJVUzERMA8GA1UECAwISWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNh
4
+ Z28xETAPBgNVBAoMCHI1MDkgTExDMRQwEgYDVQQDDAtyNTA5IEVDQyBDQTAeFw0x
5
+ MzAxMjMxNTE0MzFaFw0xNDAxMjMxNTE0MzFaMFwxCzAJBgNVBAYTAlVTMREwDwYD
6
+ VQQIEwhJbGxpbm9pczEQMA4GA1UEBxMHQ2hpY2FnbzEUMBIGA1UEChMLUGF1bCBL
7
+ ZWhyZXIxEjAQBgNVBAMTCWxhbmd1aS5zaDB2MBAGByqGSM49AgEGBSuBBAAiA2IA
8
+ BF9oorzs61uer+zuEtj1JAq0BdxFRZkDjJ+arZyYzGW33Z9uMNo+ypu5foDkKSOT
9
+ sVo5munzTa6NeCOwME+/0OfThnBRypTyz51KMKQALjCQpLOn5NmI8deTflu35Fsz
10
+ rKOCAZgwggGUMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgWgMBMGA1UdJQQMMAoG
11
+ CCsGAQUFBwMBMB0GA1UdDgQWBBRed7yB58nmh2TYUt1BWqG3ZqF9kjCBlwYDVR0j
12
+ BIGPMIGMgBS27qtirnzRTXfTrJOA46dIr1hc4qFfpF0wWzELMAkGA1UEBhMCVVMx
13
+ ETAPBgNVBAgMCElsbGlub2lzMRAwDgYDVQQHDAdDaGljYWdvMREwDwYDVQQKDAhy
14
+ NTA5IExMQzEUMBIGA1UEAwwLcjUwOSBFQ0MgQ0GCEwYYBgM952aSh7c+ikI5xhd5
15
+ fCMwQQYDVR0gBDowODA2Bg5ghkgBpaCvx38BAgMEATAkMCIGCCsGAQUFBwIBFhZo
16
+ dHRwOi8vZXhhbXBsZS5jb20vY3BzMDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9j
17
+ cmwuZG9tYWluLmNvbS90ZXN0X2NhLmNybDAyBggrBgEFBQcBAQQmMCQwIgYIKwYB
18
+ BQUHMAGGFmh0dHA6Ly9vY3NwLmRvbWFpbi5jb20wCgYIKoZIzj0EAwMDaAAwZQIx
19
+ AJBaXZ9p//wB5iKqkGq3nC58uPthG6tlMQvPq/BQdrXLU4VIWfJd782ftoDg4fP7
20
+ 8wIwB/mY5Cc3D2ECSV3nb8rHSXjBVKFA2ws7zdzwmw34IWPip2BwLxFDdKgoAHUg
21
+ wTt5
22
+ -----END CERTIFICATE-----
@@ -0,0 +1,6 @@
1
+ -----BEGIN EC PRIVATE KEY-----
2
+ MIGkAgEBBDBNN72sSNzoHoBOztMvl2yD2THgIU4YF39ZbcbW8KJDSQDpJ/XFmjT8
3
+ 9qDcPECSoAWgBwYFK4EEACKhZANiAARfaKK87Otbnq/s7hLY9SQKtAXcRUWZA4yf
4
+ mq2cmMxlt92fbjDaPsqbuX6A5Ckjk7FaOZrp802ujXgjsDBPv9Dn04ZwUcqU8s+d
5
+ SjCkAC4wkKSzp+TZiPHXk35bt+RbM6w=
6
+ -----END EC PRIVATE KEY-----
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,89 +1,109 @@
1
1
  require 'spec_helper'
2
- require 'r509/messagedigest'
2
+ require 'r509/message_digest'
3
3
  require 'openssl'
4
4
 
5
5
  describe R509::MessageDigest do
6
- it "translates sha1 name -> digest" do
7
- md = R509::MessageDigest.new("sha1")
8
- md.name.should == "sha1"
9
- md.digest.kind_of?(OpenSSL::Digest::SHA1).should == true
10
- end
11
- it "translates SHA1 name -> digest" do
12
- md = R509::MessageDigest.new("SHA1")
13
- md.name.should == "sha1"
14
- md.digest.kind_of?(OpenSSL::Digest::SHA1).should == true
15
- end
16
- it "translates sha256 name -> digest" do
17
- md = R509::MessageDigest.new("sha256")
18
- md.name.should == "sha256"
19
- md.digest.kind_of?(OpenSSL::Digest::SHA256).should == true
20
- end
21
- it "translates SHA256 name -> digest" do
22
- md = R509::MessageDigest.new("SHA256")
23
- md.name.should == "sha256"
24
- md.digest.kind_of?(OpenSSL::Digest::SHA256).should == true
25
- end
26
- it "translates sha512 name -> digest" do
27
- md = R509::MessageDigest.new("sha512")
28
- md.name.should == "sha512"
29
- md.digest.kind_of?(OpenSSL::Digest::SHA512).should == true
30
- end
31
- it "translates SHA512 name -> digest" do
32
- md = R509::MessageDigest.new("SHA512")
33
- md.name.should == "sha512"
34
- md.digest.kind_of?(OpenSSL::Digest::SHA512).should == true
35
- end
36
- it "translates md5 name -> digest" do
37
- md = R509::MessageDigest.new("md5")
38
- md.name.should == "md5"
39
- md.digest.kind_of?(OpenSSL::Digest::MD5).should == true
40
- end
41
- it "translates MD5 name -> digest" do
42
- md = R509::MessageDigest.new("MD5")
43
- md.name.should == "md5"
44
- md.digest.kind_of?(OpenSSL::Digest::MD5).should == true
45
- end
46
- it "translates dss1 name -> digest" do
47
- md = R509::MessageDigest.new("dss1")
48
- md.name.should == "dss1"
49
- md.digest.kind_of?(OpenSSL::Digest::DSS1).should == true
50
- end
51
- it "translates DSS1 name -> digest" do
52
- md = R509::MessageDigest.new("DSS1")
53
- md.name.should == "dss1"
54
- md.digest.kind_of?(OpenSSL::Digest::DSS1).should == true
55
- end
56
- it "translates unknown name -> digest" do
57
- md = R509::MessageDigest.new("unknown")
58
- md.name.should == "sha1"
59
- md.digest.kind_of?(OpenSSL::Digest::SHA1).should == true
60
- end
61
- it "translates sha1 digest -> name" do
62
- md = R509::MessageDigest.new(OpenSSL::Digest::SHA1.new)
63
- md.name.should == "sha1"
64
- md.digest.kind_of?(OpenSSL::Digest::SHA1).should == true
65
- end
66
- it "translates sha256 digest -> name" do
67
- md = R509::MessageDigest.new(OpenSSL::Digest::SHA256.new)
68
- md.name.should == "sha256"
69
- md.digest.kind_of?(OpenSSL::Digest::SHA256).should == true
70
- end
71
- it "translates sha512 digest -> name" do
72
- md = R509::MessageDigest.new(OpenSSL::Digest::SHA512.new)
73
- md.name.should == "sha512"
74
- md.digest.kind_of?(OpenSSL::Digest::SHA512).should == true
75
- end
76
- it "translates md5 digest -> name" do
77
- md = R509::MessageDigest.new(OpenSSL::Digest::MD5.new)
78
- md.name.should == "md5"
79
- md.digest.kind_of?(OpenSSL::Digest::MD5).should == true
80
- end
81
- it "translates dss1 digest -> name" do
82
- md = R509::MessageDigest.new(OpenSSL::Digest::DSS1.new)
83
- md.name.should == "dss1"
84
- md.digest.kind_of?(OpenSSL::Digest::DSS1).should == true
85
- end
86
- it "exception on unknown digest -> name" do
87
- expect{ R509::MessageDigest.new(12345) }.to raise_error(ArgumentError)
88
- end
6
+ it "translates sha1 name -> digest" do
7
+ md = R509::MessageDigest.new("sha1")
8
+ md.name.should == "sha1"
9
+ md.digest.kind_of?(OpenSSL::Digest::SHA1).should == true
10
+ end
11
+ it "translates SHA1 name -> digest" do
12
+ md = R509::MessageDigest.new("SHA1")
13
+ md.name.should == "sha1"
14
+ md.digest.kind_of?(OpenSSL::Digest::SHA1).should == true
15
+ end
16
+ it "translates sha224 name -> digest" do
17
+ md = R509::MessageDigest.new("sha224")
18
+ md.name.should == "sha224"
19
+ md.digest.kind_of?(OpenSSL::Digest::SHA224).should == true
20
+ end
21
+ it "translates sha256 name -> digest" do
22
+ md = R509::MessageDigest.new("sha256")
23
+ md.name.should == "sha256"
24
+ md.digest.kind_of?(OpenSSL::Digest::SHA256).should == true
25
+ end
26
+ it "translates SHA256 name -> digest" do
27
+ md = R509::MessageDigest.new("SHA256")
28
+ md.name.should == "sha256"
29
+ md.digest.kind_of?(OpenSSL::Digest::SHA256).should == true
30
+ end
31
+ it "translates SHA384 name -> digest" do
32
+ md = R509::MessageDigest.new("SHA384")
33
+ md.name.should == "sha384"
34
+ md.digest.kind_of?(OpenSSL::Digest::SHA384).should == true
35
+ end
36
+ it "translates sha512 name -> digest" do
37
+ md = R509::MessageDigest.new("sha512")
38
+ md.name.should == "sha512"
39
+ md.digest.kind_of?(OpenSSL::Digest::SHA512).should == true
40
+ end
41
+ it "translates SHA512 name -> digest" do
42
+ md = R509::MessageDigest.new("SHA512")
43
+ md.name.should == "sha512"
44
+ md.digest.kind_of?(OpenSSL::Digest::SHA512).should == true
45
+ end
46
+ it "translates md5 name -> digest" do
47
+ md = R509::MessageDigest.new("md5")
48
+ md.name.should == "md5"
49
+ md.digest.kind_of?(OpenSSL::Digest::MD5).should == true
50
+ end
51
+ it "translates MD5 name -> digest" do
52
+ md = R509::MessageDigest.new("MD5")
53
+ md.name.should == "md5"
54
+ md.digest.kind_of?(OpenSSL::Digest::MD5).should == true
55
+ end
56
+ it "translates dss1 name -> digest" do
57
+ md = R509::MessageDigest.new("dss1")
58
+ md.name.should == "dss1"
59
+ md.digest.kind_of?(OpenSSL::Digest::DSS1).should == true
60
+ end
61
+ it "translates DSS1 name -> digest" do
62
+ md = R509::MessageDigest.new("DSS1")
63
+ md.name.should == "dss1"
64
+ md.digest.kind_of?(OpenSSL::Digest::DSS1).should == true
65
+ end
66
+ it "translates unknown name -> digest" do
67
+ md = R509::MessageDigest.new("unknown")
68
+ md.name.should == "sha1"
69
+ md.digest.kind_of?(OpenSSL::Digest::SHA1).should == true
70
+ end
71
+ it "translates sha1 digest -> name" do
72
+ md = R509::MessageDigest.new(OpenSSL::Digest::SHA1.new)
73
+ md.name.should == "sha1"
74
+ md.digest.kind_of?(OpenSSL::Digest::SHA1).should == true
75
+ end
76
+ it "translates sha224 digest -> name" do
77
+ md = R509::MessageDigest.new(OpenSSL::Digest::SHA224.new)
78
+ md.name.should == "sha224"
79
+ md.digest.kind_of?(OpenSSL::Digest::SHA224).should == true
80
+ end
81
+ it "translates sha256 digest -> name" do
82
+ md = R509::MessageDigest.new(OpenSSL::Digest::SHA256.new)
83
+ md.name.should == "sha256"
84
+ md.digest.kind_of?(OpenSSL::Digest::SHA256).should == true
85
+ end
86
+ it "translates sha384 digest -> name" do
87
+ md = R509::MessageDigest.new(OpenSSL::Digest::SHA384.new)
88
+ md.name.should == "sha384"
89
+ md.digest.kind_of?(OpenSSL::Digest::SHA384).should == true
90
+ end
91
+ it "translates sha512 digest -> name" do
92
+ md = R509::MessageDigest.new(OpenSSL::Digest::SHA512.new)
93
+ md.name.should == "sha512"
94
+ md.digest.kind_of?(OpenSSL::Digest::SHA512).should == true
95
+ end
96
+ it "translates md5 digest -> name" do
97
+ md = R509::MessageDigest.new(OpenSSL::Digest::MD5.new)
98
+ md.name.should == "md5"
99
+ md.digest.kind_of?(OpenSSL::Digest::MD5).should == true
100
+ end
101
+ it "translates dss1 digest -> name" do
102
+ md = R509::MessageDigest.new(OpenSSL::Digest::DSS1.new)
103
+ md.name.should == "dss1"
104
+ md.digest.kind_of?(OpenSSL::Digest::DSS1).should == true
105
+ end
106
+ it "exception on unknown digest -> name" do
107
+ expect{ R509::MessageDigest.new(12345) }.to raise_error(ArgumentError)
108
+ end
89
109
  end