openssl 3.3.3 → 4.0.2

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 (55) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +3 -0
  3. data/History.md +111 -0
  4. data/README.md +12 -11
  5. data/ext/openssl/extconf.rb +30 -70
  6. data/ext/openssl/openssl_missing.h +0 -210
  7. data/ext/openssl/ossl.c +295 -304
  8. data/ext/openssl/ossl.h +13 -9
  9. data/ext/openssl/ossl_asn1.c +598 -406
  10. data/ext/openssl/ossl_asn1.h +15 -1
  11. data/ext/openssl/ossl_bio.c +8 -4
  12. data/ext/openssl/ossl_bn.c +286 -291
  13. data/ext/openssl/ossl_cipher.c +257 -209
  14. data/ext/openssl/ossl_cipher.h +10 -1
  15. data/ext/openssl/ossl_config.c +1 -6
  16. data/ext/openssl/ossl_digest.c +74 -43
  17. data/ext/openssl/ossl_digest.h +9 -1
  18. data/ext/openssl/ossl_engine.c +39 -103
  19. data/ext/openssl/ossl_hmac.c +30 -36
  20. data/ext/openssl/ossl_kdf.c +42 -53
  21. data/ext/openssl/ossl_ns_spki.c +27 -32
  22. data/ext/openssl/ossl_ocsp.c +208 -236
  23. data/ext/openssl/ossl_pkcs12.c +26 -26
  24. data/ext/openssl/ossl_pkcs7.c +175 -145
  25. data/ext/openssl/ossl_pkey.c +102 -158
  26. data/ext/openssl/ossl_pkey.h +99 -100
  27. data/ext/openssl/ossl_pkey_dh.c +31 -68
  28. data/ext/openssl/ossl_pkey_dsa.c +15 -54
  29. data/ext/openssl/ossl_pkey_ec.c +180 -238
  30. data/ext/openssl/ossl_pkey_rsa.c +56 -103
  31. data/ext/openssl/ossl_provider.c +0 -5
  32. data/ext/openssl/ossl_rand.c +7 -14
  33. data/ext/openssl/ossl_ssl.c +535 -384
  34. data/ext/openssl/ossl_ssl.h +8 -8
  35. data/ext/openssl/ossl_ssl_session.c +93 -97
  36. data/ext/openssl/ossl_ts.c +78 -124
  37. data/ext/openssl/ossl_x509.c +9 -28
  38. data/ext/openssl/ossl_x509attr.c +33 -54
  39. data/ext/openssl/ossl_x509cert.c +70 -101
  40. data/ext/openssl/ossl_x509crl.c +78 -89
  41. data/ext/openssl/ossl_x509ext.c +43 -64
  42. data/ext/openssl/ossl_x509name.c +64 -90
  43. data/ext/openssl/ossl_x509req.c +55 -62
  44. data/ext/openssl/ossl_x509revoked.c +28 -42
  45. data/ext/openssl/ossl_x509store.c +36 -54
  46. data/lib/openssl/buffering.rb +30 -24
  47. data/lib/openssl/digest.rb +1 -1
  48. data/lib/openssl/pkey.rb +71 -49
  49. data/lib/openssl/ssl.rb +12 -79
  50. data/lib/openssl/version.rb +2 -1
  51. data/lib/openssl/x509.rb +9 -0
  52. data/lib/openssl.rb +9 -6
  53. metadata +1 -3
  54. data/ext/openssl/openssl_missing.c +0 -41
  55. data/lib/openssl/asn1.rb +0 -188
@@ -31,11 +31,25 @@ VALUE asn1str_to_str(const ASN1_STRING *);
31
31
  VALUE asn1integer_to_num(const ASN1_INTEGER *);
32
32
  ASN1_INTEGER *num_to_asn1integer(VALUE, ASN1_INTEGER *);
33
33
 
34
+ /*
35
+ * ASN1_OBJECT conversions
36
+ */
37
+ ASN1_OBJECT *ossl_to_asn1obj(VALUE obj);
38
+ /*
39
+ * Returns the short name if available, the dotted decimal notation otherwise.
40
+ * This is the most common way to return ASN1_OBJECT to Ruby.
41
+ */
42
+ VALUE ossl_asn1obj_to_string(const ASN1_OBJECT *a1obj);
43
+ /*
44
+ * However, some places use long names instead. This is likely unintentional,
45
+ * but we keep the current behavior in existing methods.
46
+ */
47
+ VALUE ossl_asn1obj_to_string_long_name(const ASN1_OBJECT *a1obj);
48
+
34
49
  /*
35
50
  * ASN1 module
36
51
  */
37
52
  extern VALUE mASN1;
38
- extern VALUE eASN1Error;
39
53
 
40
54
  extern VALUE cASN1Data;
41
55
 
@@ -16,11 +16,11 @@ ossl_obj2bio(volatile VALUE *pobj)
16
16
  BIO *bio;
17
17
 
18
18
  if (RB_TYPE_P(obj, T_FILE))
19
- obj = rb_funcallv(obj, rb_intern("read"), 0, NULL);
19
+ obj = rb_funcallv(obj, rb_intern("read"), 0, NULL);
20
20
  StringValue(obj);
21
21
  bio = BIO_new_mem_buf(RSTRING_PTR(obj), RSTRING_LENINT(obj));
22
22
  if (!bio)
23
- ossl_raise(eOSSLError, "BIO_new_mem_buf");
23
+ ossl_raise(eOSSLError, "BIO_new_mem_buf");
24
24
  *pobj = obj;
25
25
  return bio;
26
26
  }
@@ -32,11 +32,15 @@ ossl_membio2str(BIO *bio)
32
32
  int state;
33
33
  BUF_MEM *buf;
34
34
 
35
- BIO_get_mem_ptr(bio, &buf);
35
+ if (BIO_get_mem_ptr(bio, &buf) <= 0) {
36
+ BIO_free(bio);
37
+ ossl_raise(eOSSLError, "BIO_get_mem_ptr");
38
+ }
39
+
36
40
  ret = ossl_str_new(buf->data, buf->length, &state);
37
41
  BIO_free(bio);
38
42
  if (state)
39
- rb_jump_tag(state);
43
+ rb_jump_tag(state);
40
44
 
41
45
  return ret;
42
46
  }