Module: Themis

Extended by:
ThemisCommon, ThemisImport
Defined in:
lib/rubythemis.rb

Defined Under Namespace

Classes: Callbacks, SKeyPairGen, Scell, Scomparator, Smessage, Ssession, ThemisError

Constant Summary collapse

BUFFER_TOO_SMALL =
-4
SUCCESS =
0
FAIL =
-1
SEND_AS_IS =
1

Class Method Summary collapse

Methods included from ThemisCommon

string_to_pointer_size

Class Method Details

.Ssign(private_key, message) ⇒ Object

Raises:



240
241
242
243
244
245
246
247
248
249
250
# File 'lib/rubythemis.rb', line 240

def Ssign(private_key, message)
 private_key_, private_key_length_= string_to_pointer_size(private_key)
 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_, nil, 0, message_, message_length_, nil, wrapped_message_length)
 raise ThemisError, "themis_secure_message_wrap (length determination) error: #{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_, nil, 0, message_, message_length_, wrapped_message, wrapped_message_length)
 raise ThemisError, "themis_secure_message_wrap error: #{res}" unless res == SUCCESS
 return wrapped_message.get_bytes(0, wrapped_message_length.read_uint);
end

.Sverify(peer_public_key, message) ⇒ Object

Raises:



252
253
254
255
256
257
258
259
260
261
262
263
264
# File 'lib/rubythemis.rb', line 252

def Sverify(peer_public_key, message)
 include ThemisCommon
 include ThemisImport
 public_key_, public_key_length_= string_to_pointer_size(peer_public_key)
 message_, message_length_=string_to_pointer_size(message)
 unwrapped_message_length = FFI::MemoryPointer.new(:uint)
 res=themis_secure_message_unwrap(nil, 0, public_key_, public_key_length_, message_, message_length_, nil, unwrapped_message_length)
 raise ThemisError, "themis_secure_message_unwrap (length determination) error: #{res}" unless res == BUFFER_TOO_SMALL
 unwrapped_message = FFI::MemoryPointer.new(:char, unwrapped_message_length.read_uint)
 res=themis_secure_message_unwrap(nil, 0, public_key_, public_key_length_, message_, message_length_, unwrapped_message, unwrapped_message_length)
 raise ThemisError, "themis_secure_message_unwrap error: #{res}" unless res == SUCCESS
 return unwrapped_message.get_bytes(0, unwrapped_message_length.read_uint);
end