guardtime 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. data/ChangeLog +4 -0
  2. data/README.rdoc +8 -1
  3. data/ext/extconf.rb +2 -0
  4. data/ext/guardtime.c +32 -29
  5. metadata +3 -3
data/ChangeLog CHANGED
@@ -1,3 +1,7 @@
1
+ Release 0.0.4 (2013-01-16 by risto):
2
+ - Travis CI integration
3
+ - Support Ruby 1.8, 1.9, Rubinus, Ruby Enterprise Edition (ree)
4
+
1
5
  Release 0.0.3 (2013-01-07 by risto):
2
6
  - Documentation improvements, supports both RDoc and yard.
3
7
 
data/README.rdoc CHANGED
@@ -52,4 +52,11 @@ Verify:
52
52
  r[:verification_errors] == GuardTime::NO_FAILURES
53
53
  end
54
54
  puts "data signed at #{signedAt.utc.to_s}" if okay
55
-
55
+
56
+
57
+
58
+ {<img src="https://travis-ci.org/ristik/ruby-guardtime.png?branch=master" alt="Build Status" />}[http://travis-ci.org/ristik/ruby-guardtime]
59
+
60
+ ---
61
+ Published under Apache license v. 2.0.
62
+ Copyright GuardTime AS 2013
data/ext/extconf.rb CHANGED
@@ -6,4 +6,6 @@ have_library("gthttp")
6
6
  have_library("crypto")
7
7
  have_library("curl")
8
8
 
9
+ $defs.push("-DRUBY_VERSION=" + RUBY_VERSION.delete('.'))
10
+
9
11
  create_makefile("guardtime")
data/ext/guardtime.c CHANGED
@@ -15,7 +15,11 @@
15
15
  */
16
16
 
17
17
  #include "ruby.h"
18
- #include <st.h>
18
+ #if RUBY_VERSION >= 190
19
+ # include <ruby/st.h>
20
+ #else
21
+ # include <st.h>
22
+ #endif
19
23
  #include <time.h>
20
24
  #include <gt_base.h>
21
25
  #include <gt_http.h>
@@ -30,10 +34,10 @@ static VALUE rb_cGuardTime;
30
34
 
31
35
  // object instance state
32
36
  typedef struct _GuardTimeData {
33
- char * signeruri;
34
- char * verifieruri;
35
- char * pubfileuri;
36
- char * loadpubs;
37
+ const char* signeruri;
38
+ const char* verifieruri;
39
+ const char* pubfileuri;
40
+ const char* loadpubs;
37
41
  time_t pubdataupdated;
38
42
  GT_Time_t64 lastpublicationtime;
39
43
  GTPublicationsFile *pub;
@@ -266,11 +270,11 @@ guardtime_sign(int argc, VALUE *argv, VALUE obj)
266
270
  Data_Get_Struct(obj, GuardTimeData, gt);
267
271
  res = GTHTTP_createTimestampHash(&dh, gt->signeruri, &ts);
268
272
  if (res != GT_OK)
269
- rb_raise(rb_eRuntimeError, GT_getErrorString(res));
273
+ rb_raise(rb_eRuntimeError, "%s", GT_getErrorString(res));
270
274
 
271
275
  res = GTTimestamp_getDEREncoded(ts, &data, &data_length);
272
276
  if (res != GT_OK)
273
- rb_raise(rb_eRuntimeError, GT_getErrorString(res));
277
+ rb_raise(rb_eRuntimeError, "%s", GT_getErrorString(res));
274
278
  GTTimestamp_free(ts);
275
279
  result = rb_str_new((char*)data, data_length);
276
280
  GT_free(data);
@@ -295,7 +299,6 @@ static VALUE
295
299
  guardtime_extend(VALUE obj, VALUE in)
296
300
  {
297
301
  int res;
298
- GTDataHash dh;
299
302
  GTTimestamp *ts, *ts2;
300
303
  unsigned char *data;
301
304
  size_t data_length;
@@ -307,16 +310,16 @@ guardtime_extend(VALUE obj, VALUE in)
307
310
  res = GTTimestamp_DERDecode(RSTRING_PTR(in),
308
311
  RSTRING_LEN(in), &ts);
309
312
  if (res != GT_OK)
310
- rb_raise(rb_eRuntimeError, GT_getErrorString(res));
313
+ rb_raise(rb_eRuntimeError, "%s", GT_getErrorString(res));
311
314
 
312
315
  res = GTHTTP_extendTimestamp(ts, gt->verifieruri, &ts2);
313
316
  GTTimestamp_free(ts);
314
317
  if (res != GT_OK)
315
- rb_raise(rb_eRuntimeError, GT_getErrorString(res));
318
+ rb_raise(rb_eRuntimeError, "%s", GT_getErrorString(res));
316
319
 
317
320
  res = GTTimestamp_getDEREncoded(ts2, &data, &data_length);
318
321
  if (res != GT_OK)
319
- rb_raise(rb_eRuntimeError, GT_getErrorString(res));
322
+ rb_raise(rb_eRuntimeError, "%s", GT_getErrorString(res));
320
323
 
321
324
  result = rb_str_new((char*)data, data_length);
322
325
  GT_free(data);
@@ -373,14 +376,14 @@ static void loadpubs(VALUE self)
373
376
  rb_raise(rb_eRuntimeError, "Error downloading/validating publishing data: %s", GT_getErrorString(res));
374
377
  }
375
378
 
376
- static VALUE
377
- time_t_to_Time(GT_Time_t64 t)
379
+ static VALUE
380
+ gttime_to_rubyTime(GT_Time_t64 t)
378
381
  {
379
- VALUE rb_cTime, rubytime;
382
+ VALUE ruby_cTime, rubytime;
380
383
  if (t == 0)
381
384
  return Qnil;
382
- rb_cTime = rb_const_get(rb_cObject, rb_intern("Time"));
383
- rubytime = rb_funcall(rb_cTime, rb_intern("at"), 1, ULL2NUM(t));
385
+ ruby_cTime = rb_const_get(rb_cObject, rb_intern("Time"));
386
+ rubytime = rb_funcall(ruby_cTime, rb_intern("at"), 1, ULL2NUM(t));
384
387
  return rubytime;
385
388
  }
386
389
 
@@ -484,6 +487,7 @@ guardtime_verify(int argc, VALUE *argv, VALUE obj)
484
487
  GTDataHash dh;
485
488
  GuardTimeData *gt;
486
489
  VALUE tsdata, hash, hash2, block, retval;
490
+ GTVerificationInfo *verification_info = NULL;
487
491
  Data_Get_Struct(obj, GuardTimeData, gt);
488
492
 
489
493
  argcount = rb_scan_args(argc, argv, "12&", &tsdata, &hash, &hash2, &block);
@@ -492,10 +496,9 @@ guardtime_verify(int argc, VALUE *argv, VALUE obj)
492
496
  res = GTTimestamp_DERDecode(RSTRING_PTR(tsdata),
493
497
  RSTRING_LEN(tsdata), &ts);
494
498
  if (res != GT_OK)
495
- rb_raise(rb_eArgError, GT_getErrorString(res));
499
+ rb_raise(rb_eArgError, "%s", GT_getErrorString(res));
496
500
 
497
501
  loadpubs(obj);
498
- GTVerificationInfo *verification_info = NULL;
499
502
  switch (argcount) {
500
503
  case 1:
501
504
  res = verifyTimestamp(ts, NULL, gt, RTEST(block)? 1:0, &verification_info);
@@ -512,7 +515,7 @@ guardtime_verify(int argc, VALUE *argv, VALUE obj)
512
515
 
513
516
  if (res != GT_OK) {
514
517
  GTTimestamp_free(ts);
515
- rb_raise(rb_eRuntimeError, GT_getErrorString(res));
518
+ rb_raise(rb_eRuntimeError, "%s", GT_getErrorString(res));
516
519
  }
517
520
 
518
521
  #define RBNILSTR(n, i) \
@@ -545,8 +548,8 @@ guardtime_verify(int argc, VALUE *argv, VALUE obj)
545
548
  } else
546
549
  RBSET("pub_reference_list", Qnil);
547
550
 
548
- RBSET("time", time_t_to_Time( verification_info->implicit_data->registered_time ));
549
- RBSET("publication_time", time_t_to_Time( verification_info->explicit_data->publication_identifier ));
551
+ RBSET("time", gttime_to_rubyTime( verification_info->implicit_data->registered_time ));
552
+ RBSET("publication_time", gttime_to_rubyTime( verification_info->explicit_data->publication_identifier ));
550
553
  } else
551
554
  retval = verification_info->verification_errors == GT_NO_FAILURES ? Qtrue : Qfalse;
552
555
 
@@ -583,12 +586,12 @@ guardtime_getnewdigester(VALUE self, VALUE tsdata)
583
586
 
584
587
  res = GTTimestamp_DERDecode(RSTRING_PTR(tsdata), RSTRING_LEN(tsdata), &ts);
585
588
  if (res != GT_OK)
586
- rb_raise(rb_eRuntimeError, GT_getErrorString(res));
589
+ rb_raise(rb_eRuntimeError, "%s", GT_getErrorString(res));
587
590
 
588
591
  res = GTTimestamp_getAlgorithm(ts, &alg);
589
592
  GTTimestamp_free(ts);
590
593
  if (res != GT_OK)
591
- rb_raise(rb_eRuntimeError, GT_getErrorString(res));
594
+ rb_raise(rb_eRuntimeError, "%s", GT_getErrorString(res));
592
595
 
593
596
  // checkifnecessary: rb_requre('digest');
594
597
  module_klass = rb_const_get(rb_cObject, rb_intern("Digest"));
@@ -617,7 +620,7 @@ guardtime_getnewdigester(VALUE self, VALUE tsdata)
617
620
  return rb_class_new_instance(1, args,
618
621
  rb_const_get(module_klass, rb_intern("SHA2")));
619
622
  default:
620
- rb_raise(rb_eRuntimeError, "Unknown hash algorithm ID");
623
+ rb_raise(rb_eRuntimeError, "%s", "Unknown hash algorithm ID");
621
624
  }
622
625
  return Qnil;
623
626
  }
@@ -645,12 +648,12 @@ guardtime_gethashalg(VALUE self, VALUE tsdata)
645
648
 
646
649
  res = GTTimestamp_DERDecode(RSTRING_PTR(tsdata), RSTRING_LEN(tsdata), &ts);
647
650
  if (res != GT_OK)
648
- rb_raise(rb_eRuntimeError, GT_getErrorString(res));
651
+ rb_raise(rb_eRuntimeError, "%s", GT_getErrorString(res));
649
652
 
650
653
  res = GTTimestamp_getAlgorithm(ts, &alg);
651
654
  GTTimestamp_free(ts);
652
655
  if (res != GT_OK)
653
- rb_raise(rb_eRuntimeError, GT_getErrorString(res));
656
+ rb_raise(rb_eRuntimeError, "%s", GT_getErrorString(res));
654
657
 
655
658
  switch(alg) {
656
659
  case GT_HASHALG_SHA256:
@@ -783,10 +786,10 @@ void Init_guardtime()
783
786
  int res;
784
787
  res = GT_init();
785
788
  if (res != GT_OK)
786
- rb_raise(rb_eRuntimeError, GT_getErrorString(res));
787
- res = GTHTTP_init("ruby api 0.0.1", 1);
789
+ rb_raise(rb_eRuntimeError, "%s", GT_getErrorString(res));
790
+ res = GTHTTP_init("ruby api 0.0.4", 1);
788
791
  if (res != GT_OK)
789
- rb_raise(rb_eRuntimeError, GT_getErrorString(res));
792
+ rb_raise(rb_eRuntimeError, "%s", GT_getErrorString(res));
790
793
 
791
794
  rb_cGuardTime = rb_define_class("GuardTime", rb_cObject);
792
795
  rb_define_alloc_func(rb_cGuardTime, guardtime_allocate);
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 3
9
- version: 0.0.3
8
+ - 4
9
+ version: 0.0.4
10
10
  platform: ruby
11
11
  authors:
12
12
  - GuardTime AS
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2013-01-07 00:00:00 +02:00
17
+ date: 2013-01-16 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies: []
20
20