Class: OsslRsa::Rsa
- Inherits:
-
Object
- Object
- OsslRsa::Rsa
- Defined in:
- lib/ossl_rsa/rsa.rb
Overview
rsa class
Instance Method Summary collapse
-
#decrypt(value, mode = OpenSSL::PKey::RSA::PKCS1_PADDING, base64_decode = true) ⇒ String
decrypt RSA.
-
#encrypt(value, mode = OpenSSL::PKey::RSA::PKCS1_PADDING, base64_encode = true) ⇒ String
encrypt RSA.
-
#initialize(options = {}) ⇒ Rsa
constructor
constructor.
-
#key_pair(mode, cipher = nil, pass = nil) ⇒ Hash
get private and public key.
-
#private? ⇒ boolean
private check.
-
#public? ⇒ boolean
public check.
-
#rsa ⇒ OpenSSL::PKey::RSA
get rsa instance.
-
#sign(digest, value, base64_encode = true) ⇒ String
sign data.
-
#text_pair ⇒ Hash
get private and public key text.
-
#to_file(dir_path, mode, cipher = nil, pass = nil, add_now = false) ⇒ Hash
save file key.
-
#to_one_file(file_path, mode, cipher = nil, pass = nil) ⇒ Object
save one file key.
-
#to_specify_file(file_path_pair, mode, cipher = nil, pass = nil) ⇒ Hash
save file key.
-
#verify(digest, sign, value, base64_decode = true) ⇒ boolean
verify sign value.
Constructor Details
Instance Method Details
#decrypt(value, mode = OpenSSL::PKey::RSA::PKCS1_PADDING, base64_decode = true) ⇒ String
decrypt RSA. use private_key.
47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/ossl_rsa/rsa.rb', line 47 def decrypt(value, mode=OpenSSL::PKey::RSA::PKCS1_PADDING, base64_decode=true) # not private, return nil. return nil unless @rsa.private? # base64 decode if base64_decode value = Base64.decode64(value) end decrypt_value = @rsa.private_decrypt(value, mode) decrypt_value end |
#encrypt(value, mode = OpenSSL::PKey::RSA::PKCS1_PADDING, base64_encode = true) ⇒ String
encrypt RSA. use public_key.
29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/ossl_rsa/rsa.rb', line 29 def encrypt(value, mode=OpenSSL::PKey::RSA::PKCS1_PADDING, base64_encode=true) # not public, return nil. return nil unless @rsa.public? encrypt_value = @rsa.public_encrypt(value, mode) # base64 encode. if base64_encode encrypt_value = Base64.encode64(encrypt_value) end encrypt_value end |
#key_pair(mode, cipher = nil, pass = nil) ⇒ Hash
get private and public key. private key set self OpenSSL::PKey::RSA instance.
160 161 162 163 164 165 166 |
# File 'lib/ossl_rsa/rsa.rb', line 160 def key_pair(mode, cipher=nil, pass=nil) private_key = get_private_key(mode, cipher, pass) public_key = get_public_key(mode, cipher, pass) { private: private_key, public: public_key } end |
#private? ⇒ boolean
private check.
144 145 146 |
# File 'lib/ossl_rsa/rsa.rb', line 144 def private? @rsa.private? end |
#public? ⇒ boolean
public check.
150 151 152 |
# File 'lib/ossl_rsa/rsa.rb', line 150 def public? @rsa.public? end |
#rsa ⇒ OpenSSL::PKey::RSA
get rsa instance.
180 181 182 |
# File 'lib/ossl_rsa/rsa.rb', line 180 def rsa @rsa end |
#sign(digest, value, base64_encode = true) ⇒ String
sign data.
66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/ossl_rsa/rsa.rb', line 66 def sign(digest, value, base64_encode=true) # not private, return nil. return nil unless @rsa.private? sign_value = @rsa.sign(digest, value) # base64 encode. if base64_encode sign_value = Base64.encode64(sign_value) end sign_value end |
#text_pair ⇒ Hash
get private and public key text.
170 171 172 173 174 175 176 |
# File 'lib/ossl_rsa/rsa.rb', line 170 def text_pair private_key = @rsa.to_text if @rsa.private? public_key = @rsa.public_key.to_text if @rsa.public? { private: private_key, public: public_key } end |
#to_file(dir_path, mode, cipher = nil, pass = nil, add_now = false) ⇒ Hash
save file key. filename is [private.xxx(pem or der)], [public.xxx(pem or der)]
118 119 120 121 122 123 124 125 |
# File 'lib/ossl_rsa/rsa.rb', line 118 def to_file(dir_path, mode, cipher=nil, pass=nil, add_now=false) save_key_pair = key_pair(mode, cipher, pass) # save file. save_path_pair = OsslRsa::FileOp.save(dir_path, save_key_pair, mode, add_now) save_path_pair end |
#to_one_file(file_path, mode, cipher = nil, pass = nil) ⇒ Object
save one file key.
102 103 104 105 106 107 108 |
# File 'lib/ossl_rsa/rsa.rb', line 102 def to_one_file(file_path, mode, cipher=nil, pass=nil) save_key_pair = key_pair(mode, cipher, pass) # save file. OsslRsa::FileOp.save_one_file(file_path, save_key_pair, mode) end |
#to_specify_file(file_path_pair, mode, cipher = nil, pass = nil) ⇒ Hash
save file key.
133 134 135 136 137 138 139 140 |
# File 'lib/ossl_rsa/rsa.rb', line 133 def to_specify_file(file_path_pair, mode, cipher=nil, pass=nil) save_key_pair = key_pair(mode, cipher, pass) # save file. save_path_pair = OsslRsa::FileOp.save_file(save_key_pair, file_path_pair, mode) save_path_pair end |
#verify(digest, sign, value, base64_decode = true) ⇒ boolean
verify sign value.
85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/ossl_rsa/rsa.rb', line 85 def verify(digest, sign, value, base64_decode=true) # not private, return false. return false unless @rsa.private? # base64 decode. if base64_decode sign = Base64.decode64(sign) end @rsa.verify(digest, sign, value) end |