Class: Tem::OpenSSL::Key
Instance Attribute Summary collapse
-
#pub_key ⇒ Object
readonly
Returns the value of attribute pub_key.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(pub_key, priv_decrypt_sec, priv_encrypt_sec, priv_sign_sec) ⇒ Key
constructor
A new instance of Key.
- #privk_decrypt(data, tem) ⇒ Object
- #privk_encrypt(data, tem) ⇒ Object
- #privk_sign(data, tem) ⇒ Object
- #to_tkfile ⇒ Object
Constructor Details
#initialize(pub_key, priv_decrypt_sec, priv_encrypt_sec, priv_sign_sec) ⇒ Key
Returns a new instance of Key.
8 9 10 11 12 13 |
# File 'lib/ossl/key.rb', line 8 def initialize(pub_key, priv_decrypt_sec, priv_encrypt_sec, priv_sign_sec) @pub_key = pub_key @priv_decrypt_sec = priv_decrypt_sec @priv_encrypt_sec = priv_encrypt_sec @priv_sign_sec = priv_sign_sec end |
Instance Attribute Details
#pub_key ⇒ Object (readonly)
Returns the value of attribute pub_key.
6 7 8 |
# File 'lib/ossl/key.rb', line 6 def pub_key @pub_key end |
Class Method Details
.load_from_tkfile(f) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/ossl/key.rb', line 39 def self.load_from_tkfile(f) ossl_pub_key = OpenSSL::PKey::RSA.new(f) pub_key = Tem::CryptoAbi::new_key_from_ssl(ossl_pub_key, true) begin ds_ary, es_ary, ss_ary = *YAML.load(f) priv_decrypt_sec = Tem::SecPack.new_from_array(ds_ary) priv_encrypt_sec = Tem::SecPack.new_from_array(es_ary) priv_sign_sec = Tem::SecPack.new_from_array(ss_ary) rescue priv_decrypt_sec = nil priv_encrypt_sec = nil priv_sign_sec = nil end return self.new(pub_key, priv_decrypt_sec, priv_encrypt_sec, priv_sign_sec) end |
.new_tem_key(tem) ⇒ Object
31 32 33 34 35 36 37 |
# File 'lib/ossl/key.rb', line 31 def self.new_tem_key(tem) keys = Tem::OpenSSL::TemTools.generate_key_on_tem(tem) priv_decrypt_sec = Tem::OpenSSL::TemTools.crypting_sec(keys[:privk], tem, :decrypt) priv_encrypt_sec = Tem::OpenSSL::TemTools.crypting_sec(keys[:privk], tem, :encrypt) priv_sign_sec = Tem::OpenSSL::TemTools.signing_sec(keys[:privk], tem) return self.new(keys[:pubk], priv_decrypt_sec, priv_encrypt_sec, priv_sign_sec) end |
Instance Method Details
#privk_decrypt(data, tem) ⇒ Object
19 20 21 |
# File 'lib/ossl/key.rb', line 19 def privk_decrypt(data, tem) Tem::OpenSSL::TemTools.crypt_with_sec(data, @priv_decrypt_sec, tem) end |
#privk_encrypt(data, tem) ⇒ Object
23 24 25 |
# File 'lib/ossl/key.rb', line 23 def privk_encrypt(data, tem) Tem::OpenSSL::TemTools.crypt_with_sec(data, @priv_encrypt_sec, tem) end |
#privk_sign(data, tem) ⇒ Object
27 28 29 |
# File 'lib/ossl/key.rb', line 27 def privk_sign(data, tem) Tem::OpenSSL::TemTools.sign_with_sec(data, @priv_sign_sec, tem) end |
#to_tkfile ⇒ Object
15 16 17 |
# File 'lib/ossl/key.rb', line 15 def to_tkfile @pub_key.ssl_key.to_s + [@priv_decrypt_sec.to_array, @priv_encrypt_sec.to_array, @priv_sign_sec.to_array].to_yaml end |