class KmsRails::KmsClientMock
Public Instance Methods
decrypt(ciphertext_blob:, encryption_context: nil)
click to toggle source
# File lib/kms_rails/kms_client_mock.rb, line 18 def decrypt(ciphertext_blob:, encryption_context: nil) key_id, decoded_context, plaintext = MessagePack.unpack(ciphertext_blob.reverse) raise ::Aws::KMS::Errors::InvalidCiphertextException.new(nil, nil) unless decoded_context == encryption_context ::Aws::KMS::Types::DecryptResponse.new( key_id: key_id, plaintext: plaintext, ) rescue MessagePack::MalformedFormatError raise ::Aws::KMS::Errors::InvalidCiphertextException.new(nil, nil) end
generate_data_key(key_id:, key_spec:, encryption_context: nil)
click to toggle source
# File lib/kms_rails/kms_client_mock.rb, line 6 def generate_data_key(key_id:, key_spec:, encryption_context: nil) raise RuntimeError, 'Unsupported key_spec in test mode' unless key_spec == 'AES_256' plaintext = SecureRandom.random_bytes(256/8) ::Aws::KMS::Types::GenerateDataKeyResponse.new( key_id: key_id, plaintext: plaintext, ciphertext_blob: [key_id, encryption_context, plaintext].to_msgpack.reverse, ) end
inspect()
click to toggle source
# File lib/kms_rails/kms_client_mock.rb, line 30 def inspect "#<Aws::KMS::Client (mocked)>" end