[ruby/openssl] Add Marshal support to PKey objects

c4374ff041
This commit is contained in:
Bart de Water 2020-04-19 17:00:01 -04:00 committed by Kazuki Yamaguchi
parent fcd2576290
commit 3f8665fe0e
8 changed files with 85 additions and 23 deletions

View file

@ -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

View file

@ -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

View file

@ -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