digest-keccak 0.0.1 → 0.0.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 741d7a0fd94a8c75fbeceba4ada1c54fadb045714f4a0bbc0bf43726d3d296a4
4
- data.tar.gz: c046ffbbfe673a91c2701975f2a612863d20f56f10bf4763c3f759b604da5fcc
3
+ metadata.gz: 1b998ea8c0bcf37484e4b255506ab369cec069c8bef34e8849f5ac8ff108d3e7
4
+ data.tar.gz: 29f98ced535302da2b5f6b21ca14a3ce1762f53617cdfaacfef2c66fa438fcd5
5
5
  SHA512:
6
- metadata.gz: 71e62b2f189ad0e36e91bf11872f6178b0f9c1dc50d520b96028d163ec6e675187437f6f508e64a88dd1ea4ae48812a6d4934bc4b4a49863bfac378f34972195
7
- data.tar.gz: cd4beef3df2ab346c6f1253e06bc99e534b30109ef13d0356cb77c09e837678b1525a45ed1aba57633dacd698a91c6feae395ee0467225a09c2eb325dc50ea8e
6
+ metadata.gz: 9e245c40644b1d94361c8e9beb3b332ca7f215f03deaabb3d64aa1b0e5fd60f4fb1b29a2d3b8a4e5092302de64faca8e05eced8b52a3dda49d54a2173bba8937
7
+ data.tar.gz: 3641c34fd37ecc0ba13449b4536c3c6f3facce3d14d2e718dc9b7674f13a0cf77e01438fcfe7233b8fa45e8774c22afc203aed6fff2c6fde9f90c4c6764e6811
data/README.md CHANGED
@@ -8,6 +8,14 @@ is almost identical to that of the `digest` standard library.
8
8
 
9
9
 
10
10
 
11
+ Table of contents
12
+ -----------------
13
+
14
+ * [Usage](#usage)
15
+ * [Development](#development)
16
+
17
+
18
+
11
19
  Usage
12
20
  -----
13
21
 
@@ -16,37 +24,37 @@ and variable length. Variable length is not supported by this Ruby extension.
16
24
  Unless the user specifies otherwise, this Ruby extension assumes 512-bit.
17
25
 
18
26
  ```ruby
19
- require 'digest/keccak'
20
-
21
- # Generate 512-bit digest.
22
- Digest::Keccak.digest("foo") # => "\025\227\204*..."
23
- Digest::Keccak.hexdigest("foo") # => "1597842a..."
24
-
25
- # Generate 224-bit digest.
26
- Digest::Keccak.digest("foo", 224) # => "\332\251M\247..."
27
- Digest::Keccak.hexdigest("foo", 224) # => "daa94da7..."
28
-
29
- # Use this interface to feed data in chunks. 512-bit by default.
30
- digest = Digest::Keccak.new
31
- digest.update("f")
32
- digest.update("o")
33
- digest.update("o")
34
- digest.digest # => "\025\227\204*..."
35
- digest.hexdigest # => "1597842a..."
36
-
37
- # You can pass a hash length to the constructor.
38
- digest = Digest::Keccak.new(224)
27
+ require 'digest/keccak'
28
+
29
+ # Generate 512-bit digest.
30
+ Digest::Keccak.digest 'foo' #=> "\x15\x97\x84*\xACR\xBC\x9D..."
31
+ Digest::Keccak.hexdigest 'foo' #=> "1597842aac52bc9d..."
32
+
33
+ # Generate 224-bit digest.
34
+ Digest::Keccak.digest 'foo', 224 #=> "\xDA\xA9M\xA7\xF6\x80k\xF5..."
35
+ Digest::Keccak.hexdigest 'foo', 224 #=> "daa94da7f6806bf5..."
36
+
37
+ # Use this interface to feed data in chunks. 512-bit by default.
38
+ digest = Digest::Keccak.new
39
+ digest.update 'f'
40
+ digest.update 'o'
41
+ digest.update 'o'
42
+ digest.digest #=> "\x15\x97\x84*\xACR\xBC\x9D..."
43
+ digest.hexdigest #=> "1597842aac52bc9d..."
44
+
45
+ # You can pass a hash length to the constructor.
46
+ digest = Digest::Keccak.new 224
39
47
  ```
40
48
 
41
49
 
42
50
 
43
- Running the test suite
44
- ----------------------
51
+ Development
52
+ -----------
45
53
 
46
54
  Run the test suite as follows:
47
55
 
48
56
  ```
49
- make test
57
+ make test
50
58
  ```
51
59
 
52
60
  A part of the test suite is automatically generated from Keccak's reference
@@ -9,23 +9,24 @@ Gem::Specification.new do |spec|
9
9
  spec.name = 'digest-keccak'
10
10
  spec.version = Digest::Keccak::VERSION
11
11
  spec.license = 'MIT'
12
- spec.homepage = 'https://github.com/kotovalexarian/digest-keccak.rb'
12
+ spec.homepage = 'https://github.com/kotovalexarian/digest-keccak'
13
13
  spec.summary = 'The Keccak cryptographic hash function.'
14
+ spec.platform = Gem::Platform::RUBY
14
15
 
15
- spec.required_ruby_version = '~> 2.2'
16
+ spec.required_ruby_version = '>= 2.2', '< 4'
16
17
 
17
- spec.authors = ['Hongli Lai (Phusion)', 'Keccak authors']
18
- spec.email = %w[software-signing@phusion.nl]
18
+ spec.authors = ['Alex Kotov', 'Hongli Lai (Phusion)', 'Keccak authors']
19
+ spec.email = %w[kotovalexarian@gmail.com]
19
20
 
20
21
  spec.description = <<-DESCRIPTION.split.join ' '
21
22
  The Keccak (draft version of SHA-3) cryptographic hash function.
22
23
  DESCRIPTION
23
24
 
24
25
  spec.metadata = {
25
- 'homepage_uri' => 'https://github.com/kotovalexarian/digest-keccak.rb',
26
- 'source_code_uri' => 'https://github.com/kotovalexarian/digest-keccak.rb',
26
+ 'homepage_uri' => 'https://github.com/kotovalexarian/digest-keccak',
27
+ 'source_code_uri' => 'https://github.com/kotovalexarian/digest-keccak',
27
28
  'bug_tracker_uri' =>
28
- 'https://github.com/kotovalexarian/digest-keccak.rb/issues',
29
+ 'https://github.com/kotovalexarian/digest-keccak/issues',
29
30
  }.freeze
30
31
 
31
32
  spec.bindir = 'exe'
@@ -40,7 +41,14 @@ Gem::Specification.new do |spec|
40
41
  'lib/**/*',
41
42
  ]
42
43
 
44
+ spec.test_files = spec.files.grep %r{^(test|spec|features)/}
45
+
43
46
  spec.executables = spec.files.grep %r{^exe/}, &File.method(:basename)
44
47
 
45
48
  spec.extensions << 'ext/digest/extconf.rb'
49
+
50
+ spec.add_development_dependency 'bundler', '~> 2.2'
51
+ spec.add_development_dependency 'rake', '~> 13.0'
52
+ spec.add_development_dependency 'rubocop', '~> 1.7'
53
+ spec.add_development_dependency 'rubocop-performance', '~> 1.9'
46
54
  end
@@ -110,7 +110,7 @@ void displayRoundNumber(int level, unsigned int i)
110
110
  void displayText(int level, const char *text)
111
111
  {
112
112
  if ((intermediateValueFile) && (level <= displayLevel)) {
113
- fprintf(intermediateValueFile, text);
113
+ fprintf(intermediateValueFile, "%s", text);
114
114
  fprintf(intermediateValueFile, "\n");
115
115
  fprintf(intermediateValueFile, "\n");
116
116
  }
@@ -1,9 +1,31 @@
1
+ #!/usr/bin/env ruby
1
2
  # frozen_string_literal: true
2
3
 
3
4
  require 'mkmf'
4
5
 
5
- have_header('ruby/digest.h')
6
- have_func('rb_str_set_len')
6
+ def cflags(*args)
7
+ args.each do |str|
8
+ $CFLAGS += " #{str.shellescape} "
9
+ end
10
+ end
7
11
 
8
- $CFLAGS << " -fvisibility=hidden"
9
- create_makefile('digest/keccak')
12
+ def have_header!(*args)
13
+ exit 1 unless have_header(*args)
14
+ end
15
+
16
+ def have_func!(header, *args)
17
+ exit 1 unless have_func(*args, header)
18
+ end
19
+
20
+ cflags '-std=c11'
21
+ cflags '-Wall'
22
+ cflags '-Wextra'
23
+ cflags '-fvisibility=hidden'
24
+
25
+ have_header! 'ruby/digest.h'
26
+ have_header! 'stdio.h'
27
+ have_header! 'string.h'
28
+
29
+ have_func! 'rb_str_set_len'
30
+
31
+ create_makefile 'digest/keccak' or exit 1
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Digest
4
4
  class Keccak
5
- VERSION = '0.0.1'
5
+ VERSION = '0.0.5'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,19 +1,76 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: digest-keccak
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
+ - Alex Kotov
7
8
  - Hongli Lai (Phusion)
8
9
  - Keccak authors
9
10
  autorequire:
10
11
  bindir: exe
11
12
  cert_chain: []
12
- date: 2019-06-08 00:00:00.000000000 Z
13
- dependencies: []
13
+ date: 2021-09-15 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: bundler
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - "~>"
20
+ - !ruby/object:Gem::Version
21
+ version: '2.2'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - "~>"
27
+ - !ruby/object:Gem::Version
28
+ version: '2.2'
29
+ - !ruby/object:Gem::Dependency
30
+ name: rake
31
+ requirement: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - "~>"
34
+ - !ruby/object:Gem::Version
35
+ version: '13.0'
36
+ type: :development
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '13.0'
43
+ - !ruby/object:Gem::Dependency
44
+ name: rubocop
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '1.7'
50
+ type: :development
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - "~>"
55
+ - !ruby/object:Gem::Version
56
+ version: '1.7'
57
+ - !ruby/object:Gem::Dependency
58
+ name: rubocop-performance
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - "~>"
62
+ - !ruby/object:Gem::Version
63
+ version: '1.9'
64
+ type: :development
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - "~>"
69
+ - !ruby/object:Gem::Version
70
+ version: '1.9'
14
71
  description: The Keccak (draft version of SHA-3) cryptographic hash function.
15
72
  email:
16
- - software-signing@phusion.nl
73
+ - kotovalexarian@gmail.com
17
74
  executables: []
18
75
  extensions:
19
76
  - ext/digest/extconf.rb
@@ -36,29 +93,32 @@ files:
36
93
  - ext/digest/extconf.rb
37
94
  - ext/digest/keccak.c
38
95
  - lib/digest/keccak/version.rb
39
- homepage: https://github.com/kotovalexarian/digest-keccak.rb
96
+ homepage: https://github.com/kotovalexarian/digest-keccak
40
97
  licenses:
41
98
  - MIT
42
99
  metadata:
43
- homepage_uri: https://github.com/kotovalexarian/digest-keccak.rb
44
- source_code_uri: https://github.com/kotovalexarian/digest-keccak.rb
45
- bug_tracker_uri: https://github.com/kotovalexarian/digest-keccak.rb/issues
100
+ homepage_uri: https://github.com/kotovalexarian/digest-keccak
101
+ source_code_uri: https://github.com/kotovalexarian/digest-keccak
102
+ bug_tracker_uri: https://github.com/kotovalexarian/digest-keccak/issues
46
103
  post_install_message:
47
104
  rdoc_options: []
48
105
  require_paths:
49
106
  - lib
50
107
  required_ruby_version: !ruby/object:Gem::Requirement
51
108
  requirements:
52
- - - "~>"
109
+ - - ">="
53
110
  - !ruby/object:Gem::Version
54
111
  version: '2.2'
112
+ - - "<"
113
+ - !ruby/object:Gem::Version
114
+ version: '4'
55
115
  required_rubygems_version: !ruby/object:Gem::Requirement
56
116
  requirements:
57
117
  - - ">="
58
118
  - !ruby/object:Gem::Version
59
119
  version: '0'
60
120
  requirements: []
61
- rubygems_version: 3.0.3
121
+ rubygems_version: 3.2.22
62
122
  signing_key:
63
123
  specification_version: 4
64
124
  summary: The Keccak cryptographic hash function.