Class: TTTLS13::Message::Extension::SignatureAlgorithms
- Inherits:
-
Object
- Object
- TTTLS13::Message::Extension::SignatureAlgorithms
- Defined in:
- lib/tttls1.3/message/extension/signature_algorithms.rb
Direct Known Subclasses
Constant Summary collapse
- DEFAULT_SIGNATURE_ALGORITHMS =
[ SignatureScheme::ECDSA_SECP256R1_SHA256, SignatureScheme::ECDSA_SECP384R1_SHA384, SignatureScheme::ECDSA_SECP521R1_SHA512, SignatureScheme::RSA_PSS_PSS_SHA256, SignatureScheme::RSA_PSS_PSS_SHA384, SignatureScheme::RSA_PSS_PSS_SHA512, SignatureScheme::RSA_PSS_RSAE_SHA256, SignatureScheme::RSA_PSS_RSAE_SHA384, SignatureScheme::RSA_PSS_RSAE_SHA512, SignatureScheme::RSA_PKCS1_SHA256, SignatureScheme::RSA_PKCS1_SHA384, SignatureScheme::RSA_PKCS1_SHA512 ].freeze
Instance Attribute Summary collapse
-
#extension_type ⇒ Object
for signature_algorithms_cert getter.
-
#supported_signature_algorithms ⇒ Object
readonly
Returns the value of attribute supported_signature_algorithms.
Class Method Summary collapse
- .deserialize(binary) ⇒ TTTLS13::Message::Extensions::SignatureAlgorithms?
- .deserialize_supported_signature_algorithms(binary) ⇒ Array of SignatureScheme
Instance Method Summary collapse
-
#initialize(supported_signature_algorithms) ⇒ SignatureAlgorithms
constructor
A new instance of SignatureAlgorithms.
- #serialize ⇒ String
Constructor Details
#initialize(supported_signature_algorithms) ⇒ SignatureAlgorithms
Returns a new instance of SignatureAlgorithms.
28 29 30 31 32 33 34 |
# File 'lib/tttls1.3/message/extension/signature_algorithms.rb', line 28 def initialize(supported_signature_algorithms) @extension_type = ExtensionType::SIGNATURE_ALGORITHMS @supported_signature_algorithms = supported_signature_algorithms || [] raise Error::ErrorAlerts, :internal_error \ if @supported_signature_algorithms.empty? || @supported_signature_algorithms.length * 2 > 2**16 - 3 end |
Instance Attribute Details
#extension_type ⇒ Object
for signature_algorithms_cert getter
24 25 26 |
# File 'lib/tttls1.3/message/extension/signature_algorithms.rb', line 24 def extension_type @extension_type end |
#supported_signature_algorithms ⇒ Object (readonly)
Returns the value of attribute supported_signature_algorithms.
25 26 27 |
# File 'lib/tttls1.3/message/extension/signature_algorithms.rb', line 25 def supported_signature_algorithms @supported_signature_algorithms end |
Class Method Details
.deserialize(binary) ⇒ TTTLS13::Message::Extensions::SignatureAlgorithms?
70 71 72 73 74 75 |
# File 'lib/tttls1.3/message/extension/signature_algorithms.rb', line 70 def self.deserialize(binary) ssa = deserialize_supported_signature_algorithms(binary) return nil if ssa.nil? SignatureAlgorithms.new(ssa) end |
.deserialize_supported_signature_algorithms(binary) ⇒ Array of SignatureScheme
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/tttls1.3/message/extension/signature_algorithms.rb', line 48 def self.deserialize_supported_signature_algorithms(binary) raise Error::ErrorAlerts, :internal_error if binary.nil? return nil if binary.length < 2 ssa_len = Convert.bin2i(binary.slice(0, 2)) i = 2 supported_signature_algorithms = [] while i < ssa_len + 2 return nil if i + 2 > binary.length supported_signature_algorithms << binary.slice(i, 2) i += 2 end return nil unless ssa_len + 2 == binary.length supported_signature_algorithms end |
Instance Method Details
#serialize ⇒ String
37 38 39 40 41 |
# File 'lib/tttls1.3/message/extension/signature_algorithms.rb', line 37 def serialize binary = @supported_signature_algorithms.join.prefix_uint16_length @extension_type + binary.prefix_uint16_length end |