Class | OpenSSL::PKey::DSA |
In: |
lib/net/ssh/transport/openssl.rb
lib/net/ssh/transport/openssl.rb |
Parent: | Object |
Signs the given data.
# File lib/net/ssh/transport/openssl.rb, line 108 108: def ssh_do_sign(data) 109: sig = sign( OpenSSL::Digest::DSS1.new, data) 110: a1sig = OpenSSL::ASN1.decode( sig ) 111: 112: sig_r = a1sig.value[0].value.to_s(2) 113: sig_s = a1sig.value[1].value.to_s(2) 114: 115: if sig_r.length > 20 || sig_s.length > 20 116: raise OpenSSL::PKey::DSAError, "bad sig size" 117: end 118: 119: sig_r = "\0" * ( 20 - sig_r.length ) + sig_r if sig_r.length < 20 120: sig_s = "\0" * ( 20 - sig_s.length ) + sig_s if sig_s.length < 20 121: 122: return sig_r + sig_s 123: end
Signs the given data.
# File lib/net/ssh/transport/openssl.rb, line 108 108: def ssh_do_sign(data) 109: sig = sign( OpenSSL::Digest::DSS1.new, data) 110: a1sig = OpenSSL::ASN1.decode( sig ) 111: 112: sig_r = a1sig.value[0].value.to_s(2) 113: sig_s = a1sig.value[1].value.to_s(2) 114: 115: if sig_r.length > 20 || sig_s.length > 20 116: raise OpenSSL::PKey::DSAError, "bad sig size" 117: end 118: 119: sig_r = "\0" * ( 20 - sig_r.length ) + sig_r if sig_r.length < 20 120: sig_s = "\0" * ( 20 - sig_s.length ) + sig_s if sig_s.length < 20 121: 122: return sig_r + sig_s 123: end
Verifies the given signature matches the given data.
# File lib/net/ssh/transport/openssl.rb, line 97 97: def ssh_do_verify(sig, data) 98: sig_r = sig[0,20].unpack("H*")[0].to_i(16) 99: sig_s = sig[20,20].unpack("H*")[0].to_i(16) 100: a1sig = OpenSSL::ASN1::Sequence([ 101: OpenSSL::ASN1::Integer(sig_r), 102: OpenSSL::ASN1::Integer(sig_s) 103: ]) 104: return verify(OpenSSL::Digest::DSS1.new, a1sig.to_der, data) 105: end
Verifies the given signature matches the given data.
# File lib/net/ssh/transport/openssl.rb, line 97 97: def ssh_do_verify(sig, data) 98: sig_r = sig[0,20].unpack("H*")[0].to_i(16) 99: sig_s = sig[20,20].unpack("H*")[0].to_i(16) 100: a1sig = OpenSSL::ASN1::Sequence([ 101: OpenSSL::ASN1::Integer(sig_r), 102: OpenSSL::ASN1::Integer(sig_s) 103: ]) 104: return verify(OpenSSL::Digest::DSS1.new, a1sig.to_der, data) 105: end
Returns "ssh-dss", which is the description of this key type used by the SSH2 protocol.
# File lib/net/ssh/transport/openssl.rb, line 86 86: def ssh_type 87: "ssh-dss" 88: end
Returns "ssh-dss", which is the description of this key type used by the SSH2 protocol.
# File lib/net/ssh/transport/openssl.rb, line 86 86: def ssh_type 87: "ssh-dss" 88: end