digest-kangarootwelve 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 30d451f9dc1fc4f3e7e87a42fc2c0d3c21339300
4
- data.tar.gz: a8ac32cff2303adf783383fcfaace5fd6ab27e3e
3
+ metadata.gz: 8b090ff25bd1a6c8c8c42fdaa409d5cdb1145317
4
+ data.tar.gz: 309680e470afa1dc5ebb24df8cd92ee55841c7b3
5
5
  SHA512:
6
- metadata.gz: 32e3bd67264b5eb97b781f403da7501237cd63cc2e10ac2f1e214998143a7cf6b070ecf2ee416c6a443827fb5867b4c4c8569d56ec715e5dc561034165bddc4c
7
- data.tar.gz: 7ff11f64ed95a86df337e4518416ce0b27178f545a5b90d9c1192eaf7b5bca5f5f95aa2feb6266877e83424f9f7d40e94880db5d9905b5738c6930e1420889a5
6
+ metadata.gz: cf0b362aa1b0fc4c32f13ba935c280de74defa7615dc6e1797a493d6a82b06dd2b1c88b04e86abb387d3beb29015665bee24315f99ceecf589b94155a83c04bf
7
+ data.tar.gz: 3002cbc9564d3324fcd373d5ce3f03a3b7758d899e6ed623b2012a7d1108c6a9c6373b823312ba1a50fd4f0e389596518e8ed281d99fb73f608b9cb3af403824
data/Rakefile CHANGED
@@ -1,20 +1,15 @@
1
+ # build, clean, clobber, install, install:local, release[remote]
1
2
  require 'bundler/gem_tasks'
2
- require 'rake/testtask'
3
3
 
4
- # clean, clobber, compile, and compile:digest/kangarootwelve
4
+ # clean, clobber, compile, compile:digest/kangarootwelve
5
5
  require 'rake/extensiontask'
6
6
  Rake::ExtensionTask.new('digest/kangarootwelve', Bundler::GemHelper.gemspec)
7
7
 
8
8
  # test
9
- Rake::TestTask.new(:test => :compile) do |t|
9
+ require 'rake/testtask'
10
+ Rake::TestTask.new do |t|
10
11
  t.test_files = FileList['test/test.rb']
11
12
  t.verbose = true
12
13
  end
13
14
 
14
- # clean
15
- task :clean do
16
- list = FileList.new('test/*.tmp', 'test/*.temp')
17
- rm_f list unless list.empty?
18
- end
19
-
20
- # Run `rake --tasks` for a list of tasks.
15
+ # Run `rake --tasks` or `rake --tasks --all` for a list of tasks.
@@ -16,7 +16,36 @@ Gem::Specification.new do |spec|
16
16
 
17
17
  spec.required_ruby_version = '>= 2.2'
18
18
 
19
- spec.files = `git ls-files -z`.split("\x0")
19
+ spec.files = %w{Gemfile
20
+ LICENSE
21
+ README.md
22
+ Rakefile
23
+ digest-kangarootwelve.gemspec
24
+ ext/digest/kangarootwelve/KangarooTwelve.c
25
+ ext/digest/kangarootwelve/KangarooTwelve.h
26
+ ext/digest/kangarootwelve/KeccakP-1600-SnP.h
27
+ ext/digest/kangarootwelve/KeccakP-1600-compact64.c
28
+ ext/digest/kangarootwelve/KeccakP-1600-times2-SnP.h
29
+ ext/digest/kangarootwelve/KeccakP-1600-times2-on1.c
30
+ ext/digest/kangarootwelve/KeccakP-1600-times4-SnP.h
31
+ ext/digest/kangarootwelve/KeccakP-1600-times4-on1.c
32
+ ext/digest/kangarootwelve/KeccakP-1600-times8-SnP.h
33
+ ext/digest/kangarootwelve/KeccakP-1600-times8-on1.c
34
+ ext/digest/kangarootwelve/KeccakSponge-common.h
35
+ ext/digest/kangarootwelve/KeccakSponge.inc
36
+ ext/digest/kangarootwelve/KeccakSpongeWidth1600.c
37
+ ext/digest/kangarootwelve/KeccakSpongeWidth1600.h
38
+ ext/digest/kangarootwelve/Phases.h
39
+ ext/digest/kangarootwelve/PlSnP-Fallback.inc
40
+ ext/digest/kangarootwelve/SnP-Relaned.h
41
+ ext/digest/kangarootwelve/align.h
42
+ ext/digest/kangarootwelve/brg_endian.h
43
+ ext/digest/kangarootwelve/ext.c
44
+ ext/digest/kangarootwelve/extconf.rb
45
+ ext/digest/kangarootwelve/utils.h
46
+ lib/digest/kangarootwelve/version.rb
47
+ test/test.rb}
48
+
20
49
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
21
50
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
22
51
  spec.require_paths = ["lib"]
@@ -320,7 +320,10 @@ static VALUE implement(VALUE name, VALUE digest_length, VALUE customization)
320
320
  */
321
321
  static VALUE _Digest_KangarooTwelve_singleton_default(VALUE self)
322
322
  {
323
- VALUE default_ = rb_ivar_get(self, _id_default);
323
+ VALUE default_ = Qnil;
324
+
325
+ if (rb_ivar_defined(self, _id_default) == Qtrue)
326
+ default_ = rb_ivar_get(self, _id_default);
324
327
 
325
328
  if (NIL_P(default_)) {
326
329
  default_ = implement(ID2SYM(_id_auto), INT2FIX(KT_DEFAULT_DIGEST_LENGTH), Qnil);
@@ -453,7 +456,7 @@ static VALUE _Digest_KangarooTwelve_Impl_singleton_new(VALUE self)
453
456
  if (self == _Digest_KangarooTwelve_Impl)
454
457
  rb_raise(rb_eRuntimeError, "Digest::KangarooTwelve::Impl is an abstract class.");
455
458
 
456
- if (rb_obj_class(rb_ivar_get(self, _id_metadata)) != _Digest_KangarooTwelve_Metadata)
459
+ if (rb_ivar_defined(self, _id_metadata) == Qfalse || rb_obj_class(rb_ivar_get(self, _id_metadata)) != _Digest_KangarooTwelve_Metadata)
457
460
  rb_raise(rb_eRuntimeError, "Metadata not set or invalid. Please do not manually inherit KangarooTwelve.");
458
461
 
459
462
  return rb_call_super(0, 0);
@@ -492,7 +495,7 @@ static VALUE _Digest_KangarooTwelve_Impl_singleton_customization(VALUE self)
492
495
  if (self == _Digest_KangarooTwelve_Impl)
493
496
  rb_raise(rb_eRuntimeError, "Digest::KangarooTwelve::Impl is an abstract class.");
494
497
 
495
- return rb_ivar_get(self, _id_customization);
498
+ return rb_ivar_defined(self, _id_customization) == Qtrue ? rb_ivar_get(self, _id_customization) : Qnil;
496
499
  }
497
500
 
498
501
  /*
@@ -505,8 +508,18 @@ static VALUE _Digest_KangarooTwelve_Impl_singleton_customization_hex(VALUE self)
505
508
  if (self == _Digest_KangarooTwelve_Impl)
506
509
  rb_raise(rb_eRuntimeError, "Digest::KangarooTwelve::Impl is an abstract class.");
507
510
 
508
- VALUE customization = rb_ivar_get(self, _id_customization);
509
- return hex_encode_str(customization);
511
+ if (rb_ivar_defined(self, _id_customization)) {
512
+ VALUE customization = rb_ivar_get(self, _id_customization);
513
+
514
+ if (!NIL_P(customization)) {
515
+ if (TYPE(customization) != T_STRING)
516
+ rb_raise(rb_eTypeError, "Unexpected class for a customization string.");
517
+
518
+ return hex_encode_str(customization);
519
+ }
520
+ }
521
+
522
+ return Qnil;
510
523
  }
511
524
 
512
525
  /*
@@ -1,5 +1,5 @@
1
1
  module Digest
2
2
  class KangarooTwelve
3
- VERSION = "0.1.0"
3
+ VERSION = "0.1.1"
4
4
  end
5
5
  end
@@ -85,10 +85,19 @@ describe Digest::KangarooTwelve do
85
85
  d.customization.must_equal a.customization
86
86
  end
87
87
 
88
+ it "has a customization method that returns nil when customization string is undefined" do
89
+ Digest::KangarooTwelve.implement.customization.must_be_nil
90
+ end
91
+
92
+ it "has a customization_hex method that returns hex of customization string, or nil" do
93
+ Digest::KangarooTwelve.implement(c: "abcd").customization_hex.must_equal "61626364"
94
+ Digest::KangarooTwelve.implement.customization_hex.must_be_nil
95
+ end
96
+
88
97
  it "has a declared block length of 8192 bytes" do
89
- Digest::KangarooTwelve::BLOCK_LENGTH == 8192
90
- Digest::KangarooTwelve.default.block_length == 8192
91
- Digest::KangarooTwelve.default.new.block_length == 8192
98
+ Digest::KangarooTwelve::BLOCK_LENGTH.must_equal 8192
99
+ Digest::KangarooTwelve.default.block_length.must_equal 8192
100
+ Digest::KangarooTwelve.default.new.block_length.must_equal 8192
92
101
  end
93
102
 
94
103
  it "produces valid hashes" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: digest-kangarootwelve
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - konsolebox
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-20 00:00:00.000000000 Z
11
+ date: 2017-08-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake