rubythemis 0.9.1.1 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/lib/rubythemis.rb +124 -64
 - metadata +3 -3
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: b9d86848a6e79af3e64bb73c9f7398d7a21798ab
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 3fafdff57341e45fa5a2a5594c26a44aaf073333
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: ac6285f33af9355895a06f219edf4c182e738abf708d243d259b83c0d41d3b93f2318d2eadd0f8e127eec6ce86487ec8da503ad4fbfc0516d731af3e7b7aae1a
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 555da9a428bf300666444ac0df91b129450b297678c7b0e583fb1746edb269789c6c568ea7413c04e679c99b6e028e07c6cadfc6f06ebfde15c6b6dd5d9d7fe2
         
     | 
    
        data/lib/rubythemis.rb
    CHANGED
    
    | 
         @@ -26,45 +26,55 @@ module ThemisCommon 
     | 
|
| 
       26 
26 
     | 
    
         
             
            end
         
     | 
| 
       27 
27 
     | 
    
         | 
| 
       28 
28 
     | 
    
         
             
            module ThemisImport
         
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
      
 29 
     | 
    
         
            +
              extend FFI::Library
         
     | 
| 
      
 30 
     | 
    
         
            +
              ffi_lib 'themis'
         
     | 
| 
       31 
31 
     | 
    
         | 
| 
       32 
32 
     | 
    
         | 
| 
       33 
33 
     | 
    
         | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
      
 34 
     | 
    
         
            +
              callback :get_pub_key_by_id_type, 	[:pointer, :int, :pointer, :int, :pointer], :int
         
     | 
| 
      
 35 
     | 
    
         
            +
              callback :send_callback_type,	[:pointer, :int, :uint], :int
         
     | 
| 
      
 36 
     | 
    
         
            +
              callback :receive_callback_type,	[:pointer, :int, :uint], :int
         
     | 
| 
       37 
37 
     | 
    
         | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
      
 38 
     | 
    
         
            +
              class Callbacks_struct < FFI::Struct
         
     | 
| 
       39 
39 
     | 
    
         
             
                layout	:send_data,		:send_callback_type,
         
     | 
| 
       40 
40 
     | 
    
         
             
            		:receive_data,		:receive_callback_type,
         
     | 
| 
       41 
41 
     | 
    
         
             
            		:state_changed,		:pointer,
         
     | 
| 
       42 
42 
     | 
    
         
             
            		:get_pub_key_for_id,	:get_pub_key_by_id_type,
         
     | 
| 
       43 
43 
     | 
    
         
             
            		:user_data,		:pointer
         
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
             
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
       55 
     | 
    
         
            -
             
     | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
       57 
     | 
    
         
            -
             
     | 
| 
       58 
     | 
    
         
            -
             
     | 
| 
       59 
     | 
    
         
            -
             
     | 
| 
       60 
     | 
    
         
            -
             
     | 
| 
       61 
     | 
    
         
            -
             
     | 
| 
       62 
     | 
    
         
            -
             
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
     | 
    
         
            -
             
     | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
      
 44 
     | 
    
         
            +
              end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
              attach_function :secure_session_create, [ :pointer, :uint, :pointer, :uint, :pointer], :pointer
         
     | 
| 
      
 47 
     | 
    
         
            +
              attach_function :secure_session_destroy, [ :pointer], :int
         
     | 
| 
      
 48 
     | 
    
         
            +
              attach_function :secure_session_generate_connect_request, [ :pointer, :pointer, :pointer], :int
         
     | 
| 
      
 49 
     | 
    
         
            +
              attach_function :secure_session_wrap, [ :pointer, :pointer, :int, :pointer, :pointer], :int
         
     | 
| 
      
 50 
     | 
    
         
            +
              attach_function :secure_session_unwrap, [ :pointer, :pointer, :int, :pointer, :pointer], :int
         
     | 
| 
      
 51 
     | 
    
         
            +
              attach_function :secure_session_is_established, [ :pointer], :bool
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
              attach_function :themis_secure_message_wrap, [:pointer, :int, :pointer, :int, :pointer, :int, :pointer, :pointer], :int
         
     | 
| 
      
 54 
     | 
    
         
            +
              attach_function :themis_secure_message_unwrap, [:pointer, :int, :pointer, :int, :pointer, :int, :pointer, :pointer], :int
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
              attach_function :themis_gen_rsa_key_pair, [:pointer, :pointer, :pointer, :pointer], :int
         
     | 
| 
      
 57 
     | 
    
         
            +
              attach_function :themis_gen_ec_key_pair, [:pointer, :pointer, :pointer, :pointer], :int
         
     | 
| 
      
 58 
     | 
    
         
            +
              attach_function :themis_version, [], :string
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
              attach_function :themis_secure_cell_encrypt_seal, [:pointer, :int, :pointer, :int, :pointer, :int, :pointer, :pointer], :int
         
     | 
| 
      
 61 
     | 
    
         
            +
              attach_function :themis_secure_cell_decrypt_seal, [:pointer, :int, :pointer, :int, :pointer, :int, :pointer, :pointer], :int
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
              attach_function :themis_secure_cell_encrypt_token_protect, [:pointer, :int, :pointer, :int, :pointer, :int, :pointer, :pointer, :pointer, :pointer], :int
         
     | 
| 
      
 64 
     | 
    
         
            +
              attach_function :themis_secure_cell_decrypt_token_protect, [:pointer, :int, :pointer, :int, :pointer, :int, :pointer, :int, :pointer, :pointer], :int
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
              attach_function :themis_secure_cell_encrypt_context_imprint, [:pointer, :int, :pointer, :int, :pointer, :int, :pointer, :pointer], :int
         
     | 
| 
      
 67 
     | 
    
         
            +
              attach_function :themis_secure_cell_decrypt_context_imprint, [:pointer, :int, :pointer, :int, :pointer, :int, :pointer, :pointer], :int
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
              begin
         
     | 
| 
      
 70 
     | 
    
         
            +
                attach_function :secure_comparator_create, [], :pointer
         
     | 
| 
      
 71 
     | 
    
         
            +
                attach_function :secure_comparator_destroy, [ :pointer], :int
         
     | 
| 
      
 72 
     | 
    
         
            +
                attach_function :secure_comparator_append_secret, [:pointer, :pointer, :int], :int
         
     | 
| 
      
 73 
     | 
    
         
            +
                attach_function :secure_comparator_begin_compare, [:pointer, :pointer, :pointer], :int
         
     | 
| 
      
 74 
     | 
    
         
            +
                attach_function :secure_comparator_proceed_compare, [:pointer, :pointer, :int, :pointer, :pointer], :int
         
     | 
| 
      
 75 
     | 
    
         
            +
                attach_function :secure_comparator_get_result, [:pointer], :int
         
     | 
| 
      
 76 
     | 
    
         
            +
              rescue FFI::NotFoundError => e
         
     | 
| 
      
 77 
     | 
    
         
            +
              end
         
     | 
| 
       68 
78 
     | 
    
         
             
            end
         
     | 
| 
       69 
79 
     | 
    
         | 
| 
       70 
80 
     | 
    
         
             
            module Themis
         
     | 
| 
         @@ -257,9 +267,9 @@ module Themis 
     | 
|
| 
       257 
267 
     | 
    
         
             
            	include ThemisCommon
         
     | 
| 
       258 
268 
     | 
    
         
             
            	include ThemisImport
         
     | 
| 
       259 
269 
     | 
    
         | 
| 
       260 
     | 
    
         
            -
            	 
     | 
| 
       261 
     | 
    
         
            -
            	 
     | 
| 
       262 
     | 
    
         
            -
            	 
     | 
| 
      
 270 
     | 
    
         
            +
            	SEAL_MODE = 0
         
     | 
| 
      
 271 
     | 
    
         
            +
            	TOKEN_PROTECT_MODE = 1
         
     | 
| 
      
 272 
     | 
    
         
            +
            	CONTEXT_IMPRINT_MODE = 2
         
     | 
| 
       263 
273 
     | 
    
         | 
| 
       264 
274 
     | 
    
         
             
            	def initialize(key, mode)
         
     | 
| 
       265 
275 
     | 
    
         
             
            	    @key, @key_length = string_to_pointer_size(key)
         
     | 
| 
         @@ -272,27 +282,27 @@ module Themis 
     | 
|
| 
       272 
282 
     | 
    
         
             
            	    encrypted_message_length=FFI::MemoryPointer.new(:uint)
         
     | 
| 
       273 
283 
     | 
    
         
             
            	    enccontext_length=FFI::MemoryPointer.new(:uint)
         
     | 
| 
       274 
284 
     | 
    
         
             
            	    case @mode
         
     | 
| 
       275 
     | 
    
         
            -
            	    when  
     | 
| 
       276 
     | 
    
         
            -
            		res= 
     | 
| 
       277 
     | 
    
         
            -
            		raise ThemisError, " 
     | 
| 
      
 285 
     | 
    
         
            +
            	    when SEAL_MODE
         
     | 
| 
      
 286 
     | 
    
         
            +
            		res=themis_secure_cell_encrypt_seal(@key, @key_length, context_, context_length_, message_, message_length_, nil, encrypted_message_length)
         
     | 
| 
      
 287 
     | 
    
         
            +
            		raise ThemisError, "themis_secure_cell_encrypt_seal (length determination) error: #{res}" unless res == BUFFER_TOO_SMALL
         
     | 
| 
       278 
288 
     | 
    
         
             
            		encrypted_message = FFI::MemoryPointer.new(:char, encrypted_message_length.read_uint)
         
     | 
| 
       279 
     | 
    
         
            -
            		res= 
     | 
| 
       280 
     | 
    
         
            -
            		raise ThemisError, " 
     | 
| 
      
 289 
     | 
    
         
            +
            		res=themis_secure_cell_encrypt_seal(@key, @key_length, context_, context_length_, message_, message_length_, encrypted_message, encrypted_message_length)
         
     | 
| 
      
 290 
     | 
    
         
            +
            		raise ThemisError, "themis_secure_cell_encrypt_seal error: #{res}" unless res == SUCCESS
         
     | 
| 
       281 
291 
     | 
    
         
             
            		return encrypted_message.get_bytes(0, encrypted_message_length.read_uint)
         
     | 
| 
       282 
     | 
    
         
            -
            	    when  
     | 
| 
       283 
     | 
    
         
            -
            		res= 
     | 
| 
       284 
     | 
    
         
            -
            		raise ThemisError, " 
     | 
| 
      
 292 
     | 
    
         
            +
            	    when TOKEN_PROTECT_MODE
         
     | 
| 
      
 293 
     | 
    
         
            +
            		res=themis_secure_cell_encrypt_token_protect(@key, @key_length, context_, context_length_, message_, message_length_, nil, enccontext_length, nil, encrypted_message_length)
         
     | 
| 
      
 294 
     | 
    
         
            +
            		raise ThemisError, "themis_secure_cell_encrypt_token_protect (length determination) error: #{res}" unless res == BUFFER_TOO_SMALL
         
     | 
| 
       285 
295 
     | 
    
         
             
            		encrypted_message = FFI::MemoryPointer.new(:char, encrypted_message_length.read_uint)
         
     | 
| 
       286 
296 
     | 
    
         
             
            		enccontext = FFI::MemoryPointer.new(:char, enccontext_length.read_uint)
         
     | 
| 
       287 
     | 
    
         
            -
            		res= 
     | 
| 
       288 
     | 
    
         
            -
            		raise ThemisError, " 
     | 
| 
      
 297 
     | 
    
         
            +
            		res=themis_secure_cell_encrypt_token_protect(@key, @key_length, context_, context_length_, message_, message_length_, enccontext, enccontext_length, encrypted_message, encrypted_message_length)
         
     | 
| 
      
 298 
     | 
    
         
            +
            		raise ThemisError, "themis_secure_cell_encrypt_token_protect error: #{res}" unless res == SUCCESS
         
     | 
| 
       289 
299 
     | 
    
         
             
            		return enccontext.get_bytes(0, enccontext_length.read_uint), encrypted_message.get_bytes(0, encrypted_message_length.read_uint)
         
     | 
| 
       290 
     | 
    
         
            -
            	    when  
     | 
| 
       291 
     | 
    
         
            -
            		res= 
     | 
| 
       292 
     | 
    
         
            -
            		raise ThemisError, " 
     | 
| 
      
 300 
     | 
    
         
            +
            	    when CONTEXT_IMPRINT_MODE
         
     | 
| 
      
 301 
     | 
    
         
            +
            		res=themis_secure_cell_encrypt_context_imprint(@key, @key_length, message_, message_length_, context_, context_length_, nil, encrypted_message_length)
         
     | 
| 
      
 302 
     | 
    
         
            +
            		raise ThemisError, "themis_secure_cell_encrypt_context_imprint (length determination) error: #{res}" unless res == BUFFER_TOO_SMALL
         
     | 
| 
       293 
303 
     | 
    
         
             
            		encrypted_message = FFI::MemoryPointer.new(:char, encrypted_message_length.read_uint)
         
     | 
| 
       294 
     | 
    
         
            -
            		res= 
     | 
| 
       295 
     | 
    
         
            -
            		raise ThemisError, " 
     | 
| 
      
 304 
     | 
    
         
            +
            		res=themis_secure_cell_encrypt_context_imprint(@key, @key_length, message_, message_length_, context_, context_length_, encrypted_message, encrypted_message_length)
         
     | 
| 
      
 305 
     | 
    
         
            +
            		raise ThemisError, "themis_secure_cell_encrypt_context_imprint error: #{res}" unless res == SUCCESS
         
     | 
| 
       296 
306 
     | 
    
         
             
            		return encrypted_message.get_bytes(0, encrypted_message_length.read_uint)
         
     | 
| 
       297 
307 
     | 
    
         
             
            	    else
         
     | 
| 
       298 
308 
     | 
    
         
             
            		raise ThemisError, "themis_secure_cell not supported mode"
         
     | 
| 
         @@ -303,31 +313,31 @@ module Themis 
     | 
|
| 
       303 
313 
     | 
    
         
             
            	    context_, context_length_ = context.nil? ? [nil,0] : string_to_pointer_size(context)
         
     | 
| 
       304 
314 
     | 
    
         
             
            	    decrypted_message_length=FFI::MemoryPointer.new(:uint)
         
     | 
| 
       305 
315 
     | 
    
         
             
            	    case @mode
         
     | 
| 
       306 
     | 
    
         
            -
            	    when  
     | 
| 
      
 316 
     | 
    
         
            +
            	    when SEAL_MODE
         
     | 
| 
       307 
317 
     | 
    
         
             
            		message_, message_length_ = string_to_pointer_size(message)
         
     | 
| 
       308 
     | 
    
         
            -
            		res= 
     | 
| 
       309 
     | 
    
         
            -
            		raise ThemisError, " 
     | 
| 
      
 318 
     | 
    
         
            +
            		res=themis_secure_cell_decrypt_seal(@key, @key_length, context_, context_length_, message_, message_length_, nil, decrypted_message_length)
         
     | 
| 
      
 319 
     | 
    
         
            +
            		raise ThemisError, "themis_secure_cell_decrypt_seal (length determination) error: #{res}" unless res == BUFFER_TOO_SMALL
         
     | 
| 
       310 
320 
     | 
    
         
             
            		decrypted_message = FFI::MemoryPointer.new(:char, decrypted_message_length.read_uint)
         
     | 
| 
       311 
     | 
    
         
            -
            		res= 
     | 
| 
       312 
     | 
    
         
            -
            		raise ThemisError, " 
     | 
| 
      
 321 
     | 
    
         
            +
            		res=themis_secure_cell_decrypt_seal(@key, @key_length, context_, context_length_, message_, message_length_, decrypted_message, decrypted_message_length)
         
     | 
| 
      
 322 
     | 
    
         
            +
            		raise ThemisError, "themis_secure_cell_decrypt_seal error: #{res}" unless res == SUCCESS
         
     | 
| 
       313 
323 
     | 
    
         
             
            		return decrypted_message.get_bytes(0, decrypted_message_length.read_uint)
         
     | 
| 
       314 
     | 
    
         
            -
            	    when  
     | 
| 
      
 324 
     | 
    
         
            +
            	    when TOKEN_PROTECT_MODE
         
     | 
| 
       315 
325 
     | 
    
         
             
            		enccontext, message_ = message
         
     | 
| 
       316 
326 
     | 
    
         
             
            		message__, message_length__ = string_to_pointer_size(message_)
         
     | 
| 
       317 
327 
     | 
    
         
             
            		enccontext_, enccontext_length = string_to_pointer_size(enccontext)
         
     | 
| 
       318 
     | 
    
         
            -
            		res= 
     | 
| 
       319 
     | 
    
         
            -
            		raise ThemisError, " 
     | 
| 
      
 328 
     | 
    
         
            +
            		res=themis_secure_cell_decrypt_token_protect(@key, @key_length, context_, context_length_, message__, message_length__, enccontext_, enccontext_length, nil, decrypted_message_length)
         
     | 
| 
      
 329 
     | 
    
         
            +
            		raise ThemisError, "themis_secure_cell_encrypt_token_protect (length determination) error: #{res}" unless res == BUFFER_TOO_SMALL
         
     | 
| 
       320 
330 
     | 
    
         
             
            		decrypted_message = FFI::MemoryPointer.new(:char, decrypted_message_length.read_uint)
         
     | 
| 
       321 
     | 
    
         
            -
            		res= 
     | 
| 
       322 
     | 
    
         
            -
            		raise ThemisError, " 
     | 
| 
      
 331 
     | 
    
         
            +
            		res=themis_secure_cell_decrypt_token_protect(@key, @key_length, context_, context_length_, message__, message_length__, enccontext_, enccontext_length, decrypted_message, decrypted_message_length)
         
     | 
| 
      
 332 
     | 
    
         
            +
            		raise ThemisError, "themis_secure_cell_encrypt_token_protect error: #{res}" unless res == SUCCESS
         
     | 
| 
       323 
333 
     | 
    
         
             
            		return  decrypted_message.get_bytes(0, decrypted_message_length.read_uint)
         
     | 
| 
       324 
     | 
    
         
            -
            	    when  
     | 
| 
      
 334 
     | 
    
         
            +
            	    when CONTEXT_IMPRINT_MODE
         
     | 
| 
       325 
335 
     | 
    
         
             
            		message_, message_length_ = string_to_pointer_size(message)
         
     | 
| 
       326 
     | 
    
         
            -
            		res= 
     | 
| 
       327 
     | 
    
         
            -
            		raise ThemisError, " 
     | 
| 
      
 336 
     | 
    
         
            +
            		res=themis_secure_cell_decrypt_context_imprint(@key, @key_length, message_, message_length_, context_, context_length_, nil, decrypted_message_length)
         
     | 
| 
      
 337 
     | 
    
         
            +
            		raise ThemisError, "themis_secure_cell_decrypt_context_imprint (length determination) error: #{res}" unless res == BUFFER_TOO_SMALL
         
     | 
| 
       328 
338 
     | 
    
         
             
            		decrypted_message = FFI::MemoryPointer.new(:char, decrypted_message_length.read_uint)
         
     | 
| 
       329 
     | 
    
         
            -
            		res= 
     | 
| 
       330 
     | 
    
         
            -
            		raise ThemisError, " 
     | 
| 
      
 339 
     | 
    
         
            +
            		res=themis_secure_cell_decrypt_context_imprint(@key, @key_length, message_, message_length_, context_, context_length_, decrypted_message, decrypted_message_length)
         
     | 
| 
      
 340 
     | 
    
         
            +
            		raise ThemisError, "themis_secure_cell_decrypt_context_imprint error: #{res}" unless res == SUCCESS
         
     | 
| 
       331 
341 
     | 
    
         
             
            		return decrypted_message.get_bytes(0, decrypted_message_length.read_uint)
         
     | 
| 
       332 
342 
     | 
    
         
             
            	    else
         
     | 
| 
       333 
343 
     | 
    
         
             
            		raise ThemisError, "themis_secure_cell not supported mode"
         
     | 
| 
         @@ -335,7 +345,57 @@ module Themis 
     | 
|
| 
       335 
345 
     | 
    
         
             
            	end
         
     | 
| 
       336 
346 
     | 
    
         
             
                end
         
     | 
| 
       337 
347 
     | 
    
         | 
| 
      
 348 
     | 
    
         
            +
                class Scomparator
         
     | 
| 
      
 349 
     | 
    
         
            +
                  include ThemisCommon
         
     | 
| 
      
 350 
     | 
    
         
            +
                  include ThemisImport
         
     | 
| 
      
 351 
     | 
    
         
            +
                  
         
     | 
| 
      
 352 
     | 
    
         
            +
                  MATCH=-252645136
         
     | 
| 
      
 353 
     | 
    
         
            +
                  NOT_MATCH = -1
         
     | 
| 
      
 354 
     | 
    
         
            +
                  NOT_READY = 0
         
     | 
| 
      
 355 
     | 
    
         
            +
             
     | 
| 
      
 356 
     | 
    
         
            +
                  def initialize(shared_secret)
         
     | 
| 
      
 357 
     | 
    
         
            +
            	shared_secret_buf, shared_secret_length = string_to_pointer_size(shared_secret)
         
     | 
| 
      
 358 
     | 
    
         
            +
            	@comparator=secure_comparator_create()
         
     | 
| 
      
 359 
     | 
    
         
            +
            	raise ThemisError, "secure_comparator_create error" unless @comparator
         
     | 
| 
      
 360 
     | 
    
         
            +
                    res=secure_comparator_append_secret(@comparator, shared_secret_buf, shared_secret_length)
         
     | 
| 
      
 361 
     | 
    
         
            +
            	raise ThemisError, "secure_comparator_append_secret error" unless res==SUCCESS            
         
     | 
| 
      
 362 
     | 
    
         
            +
                  end
         
     | 
| 
      
 363 
     | 
    
         
            +
             
     | 
| 
      
 364 
     | 
    
         
            +
                  def finalize()
         
     | 
| 
      
 365 
     | 
    
         
            +
                    res=secure_comparator_destroy(@comparator)
         
     | 
| 
      
 366 
     | 
    
         
            +
            	raise ThemisError, "secure_comparator_destroy error" unless res==SUCCESS                      
         
     | 
| 
      
 367 
     | 
    
         
            +
                  end
         
     | 
| 
      
 368 
     | 
    
         
            +
             
     | 
| 
      
 369 
     | 
    
         
            +
                  def begin_compare()
         
     | 
| 
      
 370 
     | 
    
         
            +
                    res_length=FFI::MemoryPointer.new(:uint)
         
     | 
| 
      
 371 
     | 
    
         
            +
                    res=secure_comparator_begin_compare(@comparator, nil, res_length)
         
     | 
| 
      
 372 
     | 
    
         
            +
                    raise ThemisError, "secure_comparator_begin_compare (length determination) error" unless res==BUFFER_TOO_SMALL
         
     | 
| 
      
 373 
     | 
    
         
            +
                    res_buffer=FFI::MemoryPointer.new(:char, res_length.read_uint)
         
     | 
| 
      
 374 
     | 
    
         
            +
                    res=secure_comparator_begin_compare(@comparator, res_buffer, res_length)
         
     | 
| 
      
 375 
     | 
    
         
            +
                    raise ThemisError, "secure_comparator_begin_compare error" unless res==SUCCESS || res==SEND_AS_IS
         
     | 
| 
      
 376 
     | 
    
         
            +
                    return res_buffer.get_bytes(0,res_length.read_uint)
         
     | 
| 
      
 377 
     | 
    
         
            +
                  end
         
     | 
| 
      
 378 
     | 
    
         
            +
             
     | 
| 
      
 379 
     | 
    
         
            +
                  def proceed_compare(control_message)
         
     | 
| 
      
 380 
     | 
    
         
            +
                    message, message_length = string_to_pointer_size(control_message)
         
     | 
| 
      
 381 
     | 
    
         
            +
                    res_length=FFI::MemoryPointer.new(:uint)
         
     | 
| 
      
 382 
     | 
    
         
            +
                    res=secure_comparator_proceed_compare(@comparator, message, message_length, nil, res_length)
         
     | 
| 
      
 383 
     | 
    
         
            +
                    raise ThemisError, "secure_comparator_proceed_compare (length determination) error" unless res==SUCCESS || res == BUFFER_TOO_SMALL
         
     | 
| 
      
 384 
     | 
    
         
            +
                    if res == SUCCESS
         
     | 
| 
      
 385 
     | 
    
         
            +
                      return ""
         
     | 
| 
      
 386 
     | 
    
         
            +
                    end
         
     | 
| 
      
 387 
     | 
    
         
            +
                    res_buffer=FFI::MemoryPointer.new(:char, res_length.read_uint)
         
     | 
| 
      
 388 
     | 
    
         
            +
                    res=secure_comparator_proceed_compare(@comparator, message, message_length, res_buffer, res_length)
         
     | 
| 
      
 389 
     | 
    
         
            +
                    raise ThemisError, "secure_comparator_proceed_compare error" unless res==SUCCESS || res==SEND_AS_IS
         
     | 
| 
      
 390 
     | 
    
         
            +
                    return res_buffer.get_bytes(0,res_length.read_uint)          
         
     | 
| 
      
 391 
     | 
    
         
            +
                  end
         
     | 
| 
      
 392 
     | 
    
         
            +
             
     | 
| 
      
 393 
     | 
    
         
            +
                  def result()
         
     | 
| 
      
 394 
     | 
    
         
            +
            	return secure_comparator_get_result(@comparator)
         
     | 
| 
      
 395 
     | 
    
         
            +
                  end
         
     | 
| 
      
 396 
     | 
    
         
            +
                end
         
     | 
| 
      
 397 
     | 
    
         
            +
             
     | 
| 
       338 
398 
     | 
    
         
             
                module_function :Ssign
         
     | 
| 
       339 
399 
     | 
    
         
             
                module_function :Sverify
         
     | 
| 
       340 
400 
     | 
    
         | 
| 
       341 
     | 
    
         
            -
            end
         
     | 
| 
      
 401 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: rubythemis
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.9. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.9.2
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - CossackLabs
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2015- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2015-11-04 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: ffi
         
     | 
| 
         @@ -60,7 +60,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       60 
60 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       61 
61 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       62 
62 
     | 
    
         
             
            requirements:
         
     | 
| 
       63 
     | 
    
         
            -
            - libthemis, v0.9
         
     | 
| 
      
 63 
     | 
    
         
            +
            - libthemis, v0.9.2
         
     | 
| 
       64 
64 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       65 
65 
     | 
    
         
             
            rubygems_version: 2.4.5
         
     | 
| 
       66 
66 
     | 
    
         
             
            signing_key: 
         
     |