class Themis::Smessage
Public Class Methods
new(private_key, peer_public_key)
click to toggle source
# File lib/rubythemis.rb, line 214 def initialize(private_key, peer_public_key) @private_key, @private_key_length = string_to_pointer_size(private_key) @peer_public_key, @peer_public_key_length = string_to_pointer_size(peer_public_key) end
Public Instance Methods
unwrap(message)
click to toggle source
# File lib/rubythemis.rb, line 230 def unwrap(message) message_, message_length_=string_to_pointer_size(message) unwrapped_message_length = FFI::MemoryPointer.new(:uint) res=themis_secure_message_unwrap(@private_key, @private_key_length, @peer_public_key, @peer_public_key_length, message_, message_length_, nil, unwrapped_message_length) raise ThemisError, "Secure Message failed decrypting: #{res}" unless res == BUFFER_TOO_SMALL unwrapped_message = FFI::MemoryPointer.new(:char, unwrapped_message_length.read_uint) res=themis_secure_message_unwrap(@private_key, @private_key_length, @peer_public_key, @peer_public_key_length, message_, message_length_, unwrapped_message, unwrapped_message_length) raise ThemisError, "Secure Message failed decrypting: #{res}" unless res == SUCCESS return unwrapped_message.get_bytes(0, unwrapped_message_length.read_uint); end
wrap(message)
click to toggle source
# File lib/rubythemis.rb, line 219 def wrap(message) message_, message_length_=string_to_pointer_size(message) wrapped_message_length = FFI::MemoryPointer.new(:uint) res=themis_secure_message_wrap(@private_key, @private_key_length, @peer_public_key, @peer_public_key_length, message_, message_length_, nil, wrapped_message_length) raise ThemisError, "Secure Message failed encrypting: #{res}" unless res == BUFFER_TOO_SMALL wrapped_message = FFI::MemoryPointer.new(:char, wrapped_message_length.read_uint) res=themis_secure_message_wrap(@private_key, @private_key_length, @peer_public_key, @peer_public_key_length, message_, message_length_, wrapped_message, wrapped_message_length) raise ThemisError, "Secure Message failed encrypting: #{res}" unless res == SUCCESS return wrapped_message.get_bytes(0, wrapped_message_length.read_uint); end