Class: Bunq::Encryptor
- Inherits:
-
Object
- Object
- Bunq::Encryptor
- Defined in:
- lib/bunq/encryptor.rb
Constant Summary collapse
- AES_ENCRYPTION_METHOD =
'aes-256-cbc'
- HMAC_ALGORITHM =
'sha1'
Instance Method Summary collapse
- #encrypt(body) ⇒ Object
-
#initialize(server_public_key) ⇒ Encryptor
constructor
A new instance of Encryptor.
Constructor Details
#initialize(server_public_key) ⇒ Encryptor
Returns a new instance of Encryptor.
8 9 10 11 12 |
# File 'lib/bunq/encryptor.rb', line 8 def initialize(server_public_key) fail ArgumentError, 'server_public_key is mandatory' unless server_public_key @server_public_key = OpenSSL::PKey::RSA.new(server_public_key) end |
Instance Method Details
#encrypt(body) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/bunq/encryptor.rb', line 14 def encrypt(body) headers = {} iv, key, encrypted_body = encrypt_body(body) headers[Bunq::Header::CLIENT_ENCRYPTION_IV] = Base64.strict_encode64(iv) encrypted_key = server_public_key.public_encrypt(key) headers[Bunq::Header::CLIENT_ENCRYPTION_KEY] = Base64.strict_encode64(encrypted_key) digest = hmac(key, iv + encrypted_body) headers[Bunq::Header::CLIENT_ENCRYPTION_HMAC] = Base64.strict_encode64(digest) [encrypted_body, headers] end |