rubythemis 0.9.2 → 0.9.3

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rubythemis.rb +41 -41
  3. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b9d86848a6e79af3e64bb73c9f7398d7a21798ab
4
- data.tar.gz: 3fafdff57341e45fa5a2a5594c26a44aaf073333
3
+ metadata.gz: 010a5172a65b943185448f107916d3bab8433f79
4
+ data.tar.gz: 9d24683b1218f954d2733348d02806981711d070
5
5
  SHA512:
6
- metadata.gz: ac6285f33af9355895a06f219edf4c182e738abf708d243d259b83c0d41d3b93f2318d2eadd0f8e127eec6ce86487ec8da503ad4fbfc0516d731af3e7b7aae1a
7
- data.tar.gz: 555da9a428bf300666444ac0df91b129450b297678c7b0e583fb1746edb269789c6c568ea7413c04e679c99b6e028e07c6cadfc6f06ebfde15c6b6dd5d9d7fe2
6
+ metadata.gz: 431df4be161fe1fd0b002ed3b4fc29ef4406a206977c7cb532faeffb2b963dda0413590ff77d4ba60e4ba47f6bf621d575f077ac993d096ad109c6fa23a85278
7
+ data.tar.gz: 2bb25ba4d01363b9f139af7693fb16eb4bbc98d3dacbb1ba3eb7dddc15cd80e4a51c0b10354a6c7c1dc5157a3fb6faf4b91f1833a1585a6faa4887a0f4bd215a
data/lib/rubythemis.rb CHANGED
@@ -112,11 +112,11 @@ module Themis
112
112
  private_key_length=FFI::MemoryPointer.new(:uint)
113
113
  public_key_length= FFI::MemoryPointer.new(:uint)
114
114
  res=themis_gen_ec_key_pair(nil, private_key_length, nil, public_key_length)
115
- raise ThemisError, "themis_gen_ec_key_pair (length determination) error: #{res}" unless res == BUFFER_TOO_SMALL
115
+ raise ThemisError, "Themis failed generating EC KeyPair: #{res}" unless res == BUFFER_TOO_SMALL
116
116
  private_key = FFI::MemoryPointer.new(:char, private_key_length.read_uint)
117
117
  public_key = FFI::MemoryPointer.new(:char, public_key_length.read_uint)
118
118
  res=themis_gen_ec_key_pair(private_key, private_key_length, public_key, public_key_length)
119
- raise ThemisError, "themis_gen_ec_key_pair error: #{res}" unless res == SUCCESS
119
+ raise ThemisError, "Themis failed generating EC KeyPair: #{res}" unless res == SUCCESS
120
120
  return private_key.get_bytes(0, private_key_length.read_uint), public_key.get_bytes(0, public_key_length.read_uint)
121
121
  end
122
122
 
@@ -124,11 +124,11 @@ module Themis
124
124
  private_key_length=FFI::MemoryPointer.new(:uint)
125
125
  public_key_length= FFI::MemoryPointer.new(:uint)
126
126
  res=themis_gen_rsa_key_pair(nil, private_key_length, nil, public_key_length)
127
- raise ThemisError, "themis_gen_ec_key_pair (length determination) error: #{res}" unless res == BUFFER_TOO_SMALL
127
+ raise ThemisError, "Themis failed generating RSA KeyPair: #{res}" unless res == BUFFER_TOO_SMALL
128
128
  private_key = FFI::MemoryPointer.new(:char, private_key_length.read_uint)
129
129
  public_key = FFI::MemoryPointer.new(:char, public_key_length.read_uint)
130
130
  res=themis_gen_rsa_key_pair(private_key, private_key_length, public_key, public_key_length)
131
- raise ThemisError, "themis_gen_ec_key_pair error: #{res}" unless res == SUCCESS
131
+ raise ThemisError, "Themis failed generating RSA KeyPair: #{res}" unless res == SUCCESS
132
132
  return private_key.get_bytes(0, private_key_length.read_uint), public_key.get_bytes(0, public_key_length.read_uint)
133
133
  end
134
134
  end
@@ -157,7 +157,7 @@ module Themis
157
157
  @callbacks[:user_data] = FFI::MemoryPointer.new(:uint64)
158
158
  @callbacks[:user_data].write_uint64(@transport_obj_id)
159
159
  @session=secure_session_create(id_buf, id_length, private_key_buf, private_key_length, @callbacks);
160
- raise ThemisError, "secure_session_create error" unless @session
160
+ raise ThemisError, "Secure Session failed creating" unless @session
161
161
  end
162
162
 
163
163
  def is_established()
@@ -167,10 +167,10 @@ module Themis
167
167
  def connect_request()
168
168
  connect_request_length = FFI::MemoryPointer.new(:uint)
169
169
  res=secure_session_generate_connect_request(@session, nil, connect_request_length)
170
- raise ThemisError, "secure_session_generate_connect_request (length determination) error: #{res}" unless res == BUFFER_TOO_SMALL
170
+ raise ThemisError, "Secure Session failed making connection request: #{res}" unless res == BUFFER_TOO_SMALL
171
171
  connect_request = FFI::MemoryPointer.new(:char, connect_request_length.read_uint)
172
172
  res=secure_session_generate_connect_request(@session, connect_request, connect_request_length)
173
- raise ThemisError, "secure_session_generate_connect_request error: #{res}" unless res == SUCCESS
173
+ raise ThemisError, "Secure Session failed making connection request: #{res}" unless res == SUCCESS
174
174
  return connect_request.get_bytes(0, connect_request_length.read_uint);
175
175
  end
176
176
 
@@ -178,13 +178,13 @@ module Themis
178
178
  message_, message_length_=string_to_pointer_size(message)
179
179
  unwrapped_message_length = FFI::MemoryPointer.new(:uint)
180
180
  res=secure_session_unwrap(@session, message_, message_length_, nil, unwrapped_message_length)
181
- raise ThemisError, "secure_session_unwrap (length determination) error: #{res}" unless res == BUFFER_TOO_SMALL || res == SUCCESS
181
+ raise ThemisError, "Secure Session failed decrypting: #{res}" unless res == BUFFER_TOO_SMALL || res == SUCCESS
182
182
  if res == SUCCESS
183
183
  return SUCCESS, ""
184
184
  end
185
185
  unwrapped_message = FFI::MemoryPointer.new(:char, unwrapped_message_length.read_uint)
186
186
  res=secure_session_unwrap(@session, message_, message_length_, unwrapped_message, unwrapped_message_length)
187
- raise ThemisError, "secure_session_unwrap error: #{res}" unless res == SUCCESS || res == SEND_AS_IS
187
+ raise ThemisError, "Secure Session failed decrypting: #{res}" unless res == SUCCESS || res == SEND_AS_IS
188
188
  return res, unwrapped_message.get_bytes(0, unwrapped_message_length.read_uint);
189
189
  end
190
190
 
@@ -192,16 +192,16 @@ module Themis
192
192
  message_, message_length_=string_to_pointer_size(message)
193
193
  wrapped_message_length = FFI::MemoryPointer.new(:uint)
194
194
  res=secure_session_wrap(@session, message_, message_length_, nil, wrapped_message_length)
195
- raise ThemisError, "secure_session_wrap (length determination) error: #{res}" unless res == BUFFER_TOO_SMALL
195
+ raise ThemisError, "Secure Session failed encrypting: #{res}" unless res == BUFFER_TOO_SMALL
196
196
  wrapped_message = FFI::MemoryPointer.new(:char, wrapped_message_length.read_uint)
197
197
  res=secure_session_wrap(@session, message_, message_length_, wrapped_message, wrapped_message_length)
198
- raise ThemisError, "secure_session_wrap error: #{res}" unless res == SUCCESS || res == SEND_AS_IS
198
+ raise ThemisError, "Secure Session failed encrypting: #{res}" unless res == SUCCESS || res == SEND_AS_IS
199
199
  return wrapped_message.get_bytes(0, wrapped_message_length.read_uint);
200
200
  end
201
201
 
202
202
  def finalize
203
203
  res=secure_session_destroy(@session)
204
- raise ThemisError, "secure_session_destroy error" unless res == SUCCESS
204
+ raise ThemisError, "Secure Session failed destroying" unless res == SUCCESS
205
205
 
206
206
  end
207
207
  end
@@ -218,10 +218,10 @@ module Themis
218
218
  message_, message_length_=string_to_pointer_size(message)
219
219
  wrapped_message_length = FFI::MemoryPointer.new(:uint)
220
220
  res=themis_secure_message_wrap(@private_key, @private_key_length, @peer_public_key, @peer_public_key_length, message_, message_length_, nil, wrapped_message_length)
221
- raise ThemisError, "themis_secure_message_wrap (length determination) error: #{res}" unless res == BUFFER_TOO_SMALL
221
+ raise ThemisError, "Secure Message failed encrypting: #{res}" unless res == BUFFER_TOO_SMALL
222
222
  wrapped_message = FFI::MemoryPointer.new(:char, wrapped_message_length.read_uint)
223
223
  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)
224
- raise ThemisError, "themis_secure_message_wrap error: #{res}" unless res == SUCCESS
224
+ raise ThemisError, "Secure Message failed encrypting: #{res}" unless res == SUCCESS
225
225
  return wrapped_message.get_bytes(0, wrapped_message_length.read_uint);
226
226
  end
227
227
 
@@ -229,10 +229,10 @@ module Themis
229
229
  message_, message_length_=string_to_pointer_size(message)
230
230
  unwrapped_message_length = FFI::MemoryPointer.new(:uint)
231
231
  res=themis_secure_message_unwrap(@private_key, @private_key_length, @peer_public_key, @peer_public_key_length, message_, message_length_, nil, unwrapped_message_length)
232
- raise ThemisError, "themis_secure_message_unwrap (length determination) error: #{res}" unless res == BUFFER_TOO_SMALL
232
+ raise ThemisError, "Secure Message failed decrypting: #{res}" unless res == BUFFER_TOO_SMALL
233
233
  unwrapped_message = FFI::MemoryPointer.new(:char, unwrapped_message_length.read_uint)
234
234
  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)
235
- raise ThemisError, "themis_secure_message_unwrap error: #{res}" unless res == SUCCESS
235
+ raise ThemisError, "Secure Message failed decrypting: #{res}" unless res == SUCCESS
236
236
  return unwrapped_message.get_bytes(0, unwrapped_message_length.read_uint);
237
237
  end
238
238
  end
@@ -242,10 +242,10 @@ module Themis
242
242
  message_, message_length_=string_to_pointer_size(message)
243
243
  wrapped_message_length = FFI::MemoryPointer.new(:uint)
244
244
  res=themis_secure_message_wrap(private_key_, private_key_length_, nil, 0, message_, message_length_, nil, wrapped_message_length)
245
- raise ThemisError, "themis_secure_message_wrap (length determination) error: #{res}" unless res == BUFFER_TOO_SMALL
245
+ raise ThemisError, "Secure Message failed singing: #{res}" unless res == BUFFER_TOO_SMALL
246
246
  wrapped_message = FFI::MemoryPointer.new(:char, wrapped_message_length.read_uint)
247
247
  res=themis_secure_message_wrap(private_key_, private_key_length_, nil, 0, message_, message_length_, wrapped_message, wrapped_message_length)
248
- raise ThemisError, "themis_secure_message_wrap error: #{res}" unless res == SUCCESS
248
+ raise ThemisError, "Secure Message failed singing: #{res}" unless res == SUCCESS
249
249
  return wrapped_message.get_bytes(0, wrapped_message_length.read_uint);
250
250
  end
251
251
 
@@ -256,10 +256,10 @@ module Themis
256
256
  message_, message_length_=string_to_pointer_size(message)
257
257
  unwrapped_message_length = FFI::MemoryPointer.new(:uint)
258
258
  res=themis_secure_message_unwrap(nil, 0, public_key_, public_key_length_, message_, message_length_, nil, unwrapped_message_length)
259
- raise ThemisError, "themis_secure_message_unwrap (length determination) error: #{res}" unless res == BUFFER_TOO_SMALL
259
+ raise ThemisError, "Secure Message failed verifying: #{res}" unless res == BUFFER_TOO_SMALL
260
260
  unwrapped_message = FFI::MemoryPointer.new(:char, unwrapped_message_length.read_uint)
261
261
  res=themis_secure_message_unwrap(nil, 0, public_key_, public_key_length_, message_, message_length_, unwrapped_message, unwrapped_message_length)
262
- raise ThemisError, "themis_secure_message_unwrap error: #{res}" unless res == SUCCESS
262
+ raise ThemisError, "Secure Message failed verifying: #{res}" unless res == SUCCESS
263
263
  return unwrapped_message.get_bytes(0, unwrapped_message_length.read_uint);
264
264
  end
265
265
 
@@ -284,28 +284,28 @@ module Themis
284
284
  case @mode
285
285
  when SEAL_MODE
286
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
287
+ raise ThemisError, "Secure Cell (Seal) failed encrypting: #{res}" unless res == BUFFER_TOO_SMALL
288
288
  encrypted_message = FFI::MemoryPointer.new(:char, encrypted_message_length.read_uint)
289
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
290
+ raise ThemisError, "Secure Cell (Seal) failed encrypting: #{res}" unless res == SUCCESS
291
291
  return encrypted_message.get_bytes(0, encrypted_message_length.read_uint)
292
292
  when TOKEN_PROTECT_MODE
293
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
294
+ raise ThemisError, "Secure Cell (Token protect) failed encrypting: #{res}" unless res == BUFFER_TOO_SMALL
295
295
  encrypted_message = FFI::MemoryPointer.new(:char, encrypted_message_length.read_uint)
296
296
  enccontext = FFI::MemoryPointer.new(:char, enccontext_length.read_uint)
297
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
298
+ raise ThemisError, "Secure Cell (Token Protect) failed encrypting: #{res}" unless res == SUCCESS
299
299
  return enccontext.get_bytes(0, enccontext_length.read_uint), encrypted_message.get_bytes(0, encrypted_message_length.read_uint)
300
300
  when CONTEXT_IMPRINT_MODE
301
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
302
+ raise ThemisError, "Secure Cell (Context Imprint) failed encrypting: #{res}" unless res == BUFFER_TOO_SMALL
303
303
  encrypted_message = FFI::MemoryPointer.new(:char, encrypted_message_length.read_uint)
304
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
305
+ raise ThemisError, "Secure Cell (Context Imprint) failed encrypting: #{res}" unless res == SUCCESS
306
306
  return encrypted_message.get_bytes(0, encrypted_message_length.read_uint)
307
307
  else
308
- raise ThemisError, "themis_secure_cell not supported mode"
308
+ raise ThemisError, "Secure Cell failed encrypting, undefined mode"
309
309
  end
310
310
  end
311
311
 
@@ -316,31 +316,31 @@ module Themis
316
316
  when SEAL_MODE
317
317
  message_, message_length_ = string_to_pointer_size(message)
318
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
319
+ raise ThemisError, "Secure Cell (Seal) failed decrypting: #{res}" unless res == BUFFER_TOO_SMALL
320
320
  decrypted_message = FFI::MemoryPointer.new(:char, decrypted_message_length.read_uint)
321
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
322
+ raise ThemisError, "Secure Cell (Seal) failed decrypting: #{res}" unless res == SUCCESS
323
323
  return decrypted_message.get_bytes(0, decrypted_message_length.read_uint)
324
324
  when TOKEN_PROTECT_MODE
325
325
  enccontext, message_ = message
326
326
  message__, message_length__ = string_to_pointer_size(message_)
327
327
  enccontext_, enccontext_length = string_to_pointer_size(enccontext)
328
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
329
+ raise ThemisError, "Secure Cell (Token Protect) failed decrypting: #{res}" unless res == BUFFER_TOO_SMALL
330
330
  decrypted_message = FFI::MemoryPointer.new(:char, decrypted_message_length.read_uint)
331
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
332
+ raise ThemisError, "Secure Cell (Token Protect) failed decrypting: #{res}" unless res == SUCCESS
333
333
  return decrypted_message.get_bytes(0, decrypted_message_length.read_uint)
334
334
  when CONTEXT_IMPRINT_MODE
335
335
  message_, message_length_ = string_to_pointer_size(message)
336
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
337
+ raise ThemisError, "Secure Cell (Context Imprint) failed decrypting: #{res}" unless res == BUFFER_TOO_SMALL
338
338
  decrypted_message = FFI::MemoryPointer.new(:char, decrypted_message_length.read_uint)
339
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
340
+ raise ThemisError, "Secure Cell (Context Imprint) failed decrypting: #{res}" unless res == SUCCESS
341
341
  return decrypted_message.get_bytes(0, decrypted_message_length.read_uint)
342
342
  else
343
- raise ThemisError, "themis_secure_cell not supported mode"
343
+ raise ThemisError, "Secure Cell failed encrypting, undefined mode"
344
344
  end
345
345
  end
346
346
  end
@@ -356,23 +356,23 @@ module Themis
356
356
  def initialize(shared_secret)
357
357
  shared_secret_buf, shared_secret_length = string_to_pointer_size(shared_secret)
358
358
  @comparator=secure_comparator_create()
359
- raise ThemisError, "secure_comparator_create error" unless @comparator
359
+ raise ThemisError, "Secure Comparator failed creating" unless @comparator
360
360
  res=secure_comparator_append_secret(@comparator, shared_secret_buf, shared_secret_length)
361
- raise ThemisError, "secure_comparator_append_secret error" unless res==SUCCESS
361
+ raise ThemisError, "Secure Comparator failed appending secret" unless res==SUCCESS
362
362
  end
363
363
 
364
364
  def finalize()
365
365
  res=secure_comparator_destroy(@comparator)
366
- raise ThemisError, "secure_comparator_destroy error" unless res==SUCCESS
366
+ raise ThemisError, "Secure Comparator failed destroying" unless res==SUCCESS
367
367
  end
368
368
 
369
369
  def begin_compare()
370
370
  res_length=FFI::MemoryPointer.new(:uint)
371
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
372
+ raise ThemisError, "Secure Comparator failed making initialisation message" unless res==BUFFER_TOO_SMALL
373
373
  res_buffer=FFI::MemoryPointer.new(:char, res_length.read_uint)
374
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
375
+ raise ThemisError, "Secure Comparator failed making initialisation message" unless res==SUCCESS || res==SEND_AS_IS
376
376
  return res_buffer.get_bytes(0,res_length.read_uint)
377
377
  end
378
378
 
@@ -380,13 +380,13 @@ module Themis
380
380
  message, message_length = string_to_pointer_size(control_message)
381
381
  res_length=FFI::MemoryPointer.new(:uint)
382
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
383
+ raise ThemisError, "Secure Comparator failed proeeding message" unless res==SUCCESS || res == BUFFER_TOO_SMALL
384
384
  if res == SUCCESS
385
385
  return ""
386
386
  end
387
387
  res_buffer=FFI::MemoryPointer.new(:char, res_length.read_uint)
388
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
389
+ raise ThemisError, "Secure Comparator failed proeeding message" unless res==SUCCESS || res==SEND_AS_IS
390
390
  return res_buffer.get_bytes(0,res_length.read_uint)
391
391
  end
392
392
 
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.2
4
+ version: 0.9.3
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-04 00:00:00.000000000 Z
11
+ date: 2016-05-24 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.2
63
+ - libthemis, v0.9.3
64
64
  rubyforge_project:
65
65
  rubygems_version: 2.4.5
66
66
  signing_key: