Class: Themis::Scomparator
- Inherits:
-
Object
- Object
- Themis::Scomparator
- Includes:
- ThemisCommon, ThemisImport
- Defined in:
- lib/rubythemis.rb
Constant Summary collapse
- MATCH =
-252645136
- NOT_MATCH =
-1
- NOT_READY =
0
Instance Method Summary collapse
- #begin_compare ⇒ Object
- #finalize ⇒ Object
-
#initialize(shared_secret) ⇒ Scomparator
constructor
A new instance of Scomparator.
- #proceed_compare(control_message) ⇒ Object
- #result ⇒ Object
Methods included from ThemisCommon
Constructor Details
#initialize(shared_secret) ⇒ Scomparator
Returns a new instance of Scomparator.
356 357 358 359 360 361 362 |
# File 'lib/rubythemis.rb', line 356 def initialize(shared_secret) shared_secret_buf, shared_secret_length = string_to_pointer_size(shared_secret) @comparator=secure_comparator_create() raise ThemisError, "secure_comparator_create error" unless @comparator res=secure_comparator_append_secret(@comparator, shared_secret_buf, shared_secret_length) raise ThemisError, "secure_comparator_append_secret error" unless res==SUCCESS end |
Instance Method Details
#begin_compare ⇒ Object
369 370 371 372 373 374 375 376 377 |
# File 'lib/rubythemis.rb', line 369 def begin_compare() res_length=FFI::MemoryPointer.new(:uint) res=secure_comparator_begin_compare(@comparator, nil, res_length) raise ThemisError, "secure_comparator_begin_compare (length determination) error" unless res==BUFFER_TOO_SMALL res_buffer=FFI::MemoryPointer.new(:char, res_length.read_uint) res=secure_comparator_begin_compare(@comparator, res_buffer, res_length) raise ThemisError, "secure_comparator_begin_compare error" unless res==SUCCESS || res==SEND_AS_IS return res_buffer.get_bytes(0,res_length.read_uint) end |
#finalize ⇒ Object
364 365 366 367 |
# File 'lib/rubythemis.rb', line 364 def finalize() res=secure_comparator_destroy(@comparator) raise ThemisError, "secure_comparator_destroy error" unless res==SUCCESS end |
#proceed_compare(control_message) ⇒ Object
379 380 381 382 383 384 385 386 387 388 389 390 391 |
# File 'lib/rubythemis.rb', line 379 def proceed_compare() , = string_to_pointer_size() res_length=FFI::MemoryPointer.new(:uint) res=secure_comparator_proceed_compare(@comparator, , , nil, res_length) raise ThemisError, "secure_comparator_proceed_compare (length determination) error" unless res==SUCCESS || res == BUFFER_TOO_SMALL if res == SUCCESS return "" end res_buffer=FFI::MemoryPointer.new(:char, res_length.read_uint) res=secure_comparator_proceed_compare(@comparator, , , res_buffer, res_length) raise ThemisError, "secure_comparator_proceed_compare error" unless res==SUCCESS || res==SEND_AS_IS return res_buffer.get_bytes(0,res_length.read_uint) end |
#result ⇒ Object
393 394 395 |
# File 'lib/rubythemis.rb', line 393 def result() return secure_comparator_get_result(@comparator) end |