summaryrefslogtreecommitdiff
path: root/ext/openssl/lib/openssl
diff options
context:
space:
mode:
authorBart de Water <bartdewater@gmail.com>2020-04-19 17:00:01 -0400
committerKazuki Yamaguchi <k@rhe.jp>2020-05-13 15:47:51 +0900
commit3f8665fe0ed5331aa723ddecbf6ad3728931c08d (patch)
treee49acee2ab15e050f7c39ee24c330c7b78970160 /ext/openssl/lib/openssl
parentfcd257629063a345c48ff2d8057fa8ab910881f2 (diff)
[ruby/openssl] Add Marshal support to PKey objects
https://github.com/ruby/openssl/commit/c4374ff041
Diffstat (limited to 'ext/openssl/lib/openssl')
-rw-r--r--ext/openssl/lib/openssl/marshal.rb30
-rw-r--r--ext/openssl/lib/openssl/pkey.rb17
-rw-r--r--ext/openssl/lib/openssl/x509.rb30
3 files changed, 55 insertions, 22 deletions
diff --git a/ext/openssl/lib/openssl/marshal.rb b/ext/openssl/lib/openssl/marshal.rb
new file mode 100644
index 0000000000..af5647192a
--- /dev/null
+++ b/ext/openssl/lib/openssl/marshal.rb
@@ -0,0 +1,30 @@
+# frozen_string_literal: true
+#--
+# = Ruby-space definitions to add DER (de)serialization to classes
+#
+# = Info
+# 'OpenSSL for Ruby 2' project
+# Copyright (C) 2002 Michal Rokos <m.rokos@sh.cvut.cz>
+# All rights reserved.
+#
+# = Licence
+# This program is licensed under the same licence as Ruby.
+# (See the file 'LICENCE'.)
+#++
+module OpenSSL
+ module Marshal
+ def self.included(base)
+ base.extend(ClassMethods)
+ end
+
+ module ClassMethods
+ def _load(string)
+ new(string)
+ end
+ end
+
+ def _dump(_level)
+ to_der
+ end
+ end
+end
diff --git a/ext/openssl/lib/openssl/pkey.rb b/ext/openssl/lib/openssl/pkey.rb
index ecb112f792..9cc3276356 100644
--- a/ext/openssl/lib/openssl/pkey.rb
+++ b/ext/openssl/lib/openssl/pkey.rb
@@ -4,8 +4,21 @@
# Copyright (C) 2017 Ruby/OpenSSL Project Authors
#++
+require_relative 'marshal'
+
module OpenSSL::PKey
+ class DH
+ include OpenSSL::Marshal
+ end
+
+ class DSA
+ include OpenSSL::Marshal
+ end
+
if defined?(EC)
+ class EC
+ include OpenSSL::Marshal
+ end
class EC::Point
# :call-seq:
# point.to_bn([conversion_form]) -> OpenSSL::BN
@@ -22,4 +35,8 @@ module OpenSSL::PKey
end
end
end
+
+ class RSA
+ include OpenSSL::Marshal
+ end
end
diff --git a/ext/openssl/lib/openssl/x509.rb b/ext/openssl/lib/openssl/x509.rb
index 1d2a5aaca8..6771b90c1a 100644
--- a/ext/openssl/lib/openssl/x509.rb
+++ b/ext/openssl/lib/openssl/x509.rb
@@ -12,24 +12,10 @@
# (See the file 'LICENCE'.)
#++
+require_relative 'marshal'
+
module OpenSSL
module X509
- module Marshal
- def self.included(base)
- base.extend(ClassMethods)
- end
-
- module ClassMethods
- def _load(string)
- new(string)
- end
- end
-
- def _dump(_level)
- to_der
- end
- end
-
class ExtensionFactory
def create_extension(*arg)
if arg.size > 1
@@ -57,7 +43,7 @@ module OpenSSL
end
class Extension
- include Marshal
+ include OpenSSL::Marshal
def ==(other)
return false unless Extension === other
@@ -216,7 +202,7 @@ module OpenSSL
end
class Name
- include Marshal
+ include OpenSSL::Marshal
module RFC2253DN
Special = ',=+<>#;'
@@ -321,7 +307,7 @@ module OpenSSL
end
class Attribute
- include Marshal
+ include OpenSSL::Marshal
def ==(other)
return false unless Attribute === other
@@ -336,7 +322,7 @@ module OpenSSL
end
class Certificate
- include Marshal
+ include OpenSSL::Marshal
include Extension::SubjectKeyIdentifier
include Extension::AuthorityKeyIdentifier
include Extension::CRLDistributionPoints
@@ -355,7 +341,7 @@ module OpenSSL
end
class CRL
- include Marshal
+ include OpenSSL::Marshal
include Extension::AuthorityKeyIdentifier
def ==(other)
@@ -372,7 +358,7 @@ module OpenSSL
end
class Request
- include Marshal
+ include OpenSSL::Marshal
def ==(other)
return false unless Request === other