Class: McAPI::Encryption::JweEncryption
- Inherits:
-
Object
- Object
- McAPI::Encryption::JweEncryption
- Defined in:
- lib/mcapi/encryption/jwe_encryption.rb
Overview
Performs JWE encryption on HTTP payloads.
Instance Method Summary collapse
-
#decrypt(response) ⇒ Object
Decrypt part of the HTTP response using the given config.
-
#encrypt(endpoint, body) ⇒ Hash
Encrypt parts of a HTTP request using the given config.
-
#initialize(config) ⇒ JweEncryption
constructor
Create a new instance with the provided configuration.
Constructor Details
#initialize(config) ⇒ JweEncryption
Create a new instance with the provided configuration
18 19 20 21 |
# File 'lib/mcapi/encryption/jwe_encryption.rb', line 18 def initialize(config) @config = config @crypto = McAPI::Encryption::JweCrypto.new(config) end |
Instance Method Details
#decrypt(response) ⇒ Object
Decrypt part of the HTTP response using the given config
53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/mcapi/encryption/jwe_encryption.rb', line 53 def decrypt(response) response = JSON.parse(response) config = McAPI::Utils.config?(response['request']['url'], @config) body_map = response if config body_map = config['toDecrypt'].map do |v| decrypt_with_body(v, response['body']) end end response['body'] = McAPI::Utils.compute_body(config['toDecrypt'], body_map) { response['body'] } unless config.nil? JSON.generate(response) end |
#encrypt(endpoint, body) ⇒ Hash
Encrypt parts of a HTTP request using the given config
-
:header header with encrypted value (if configured with header)
-
:body encrypted body
34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/mcapi/encryption/jwe_encryption.rb', line 34 def encrypt(endpoint, body) body = JSON.parse(body) if body.is_a?(String) config = McAPI::Utils.config?(endpoint, @config) body_map = body if config body_map = config['toEncrypt'].map do |v| encrypt_with_body(v, body) end end { body: config ? McAPI::Utils.compute_body(config['toEncrypt'], body_map) { body.json } : body.json } end |