kryptonita 0.0.8 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +5 -6
- data/lib/kryptonita.rb +16 -4
- data/lib/kryptonita/version.rb +1 -1
- data/spec/kryptonita/hash_spec.rb +41 -5
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 06cce4dc171629a2427c5dab26dde30a03867a06
|
4
|
+
data.tar.gz: 2677cd295a304fc9b6dda4927c2c60aeb671f019
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d3c14ae4c865810f1db4f8039f950a455d233188acb55e914c9a7c84611bb6a81433cab947d59834b85de30bbecbb4db6c89cfb93d8acba715f43850ea2c4aa9
|
7
|
+
data.tar.gz: d8799219473c5898283d4e0b257014f349b0c900c43702d68766769a7fe6902602d7785f49e5428ceedbd792d6c502f2a66a045a86066276aac83867bde6e2fd
|
data/README.md
CHANGED
@@ -1,11 +1,7 @@
|
|
1
|
-
# Kryptonita [![Gem Version](https://badge.fury.io/rb/kryptonita.svg)](http://badge.fury.io/rb/kryptonita) [![Code Climate](https://codeclimate.com/github/AngoDev/kryptonita/badges/gpa.svg)](https://codeclimate.com/github/AngoDev/kryptonita) [![Test Coverage](https://codeclimate.com/github/psantos10/Validation/badges/coverage.svg)](https://codeclimate.com/github/psantos10/Validation)
|
1
|
+
# Kryptonita [![Gem Version](https://badge.fury.io/rb/kryptonita.svg)](http://badge.fury.io/rb/kryptonita) [![Code Climate](https://codeclimate.com/github/AngoDev/kryptonita/badges/gpa.svg)](https://codeclimate.com/github/AngoDev/kryptonita) [![Test Coverage](https://codeclimate.com/github/psantos10/Validation/badges/coverage.svg)](https://codeclimate.com/github/psantos10/Validation)
|
2
2
|
|
3
3
|
Kryptonita is a Ruby gem that provides a lot of functions for hashing, encrypt and decrypt
|
4
4
|
|
5
|
-
## Available Hash Functions
|
6
|
-
|
7
|
-
- Whirlpool (Return a String with 128 length)
|
8
|
-
|
9
5
|
## Installation
|
10
6
|
|
11
7
|
Add this line to your application's Gemfile:
|
@@ -35,8 +31,11 @@ puts Kryptonita::Hash.whirlpool("ruby")
|
|
35
31
|
|
36
32
|
|
37
33
|
```ruby
|
38
|
-
Kryptonita::Hash.
|
34
|
+
Kryptonita::Hash.md5(str)
|
35
|
+
Kryptonita::Hash.md5(str, salt: 'mysalt')
|
36
|
+
Kryptonita::Hash.sha1(str)
|
39
37
|
Kryptonita::Hash.sha512(str)
|
38
|
+
Kryptonita::Hash.whirlpool(str)
|
40
39
|
```
|
41
40
|
|
42
41
|
## Contributing
|
data/lib/kryptonita.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require "kryptonita/version"
|
2
2
|
#require "./whirlpool/whirlpool"
|
3
|
-
require "digest
|
3
|
+
require "digest"
|
4
4
|
|
5
5
|
# Support multiple ruby versions, fat binaries under Windows.
|
6
6
|
begin
|
@@ -13,14 +13,26 @@ end
|
|
13
13
|
module Kryptonita
|
14
14
|
class Hash
|
15
15
|
|
16
|
-
def self.
|
17
|
-
|
18
|
-
|
16
|
+
def self.md5(str, salt: nil)
|
17
|
+
if salt.nil?
|
18
|
+
Digest::MD5.hexdigest(str)
|
19
|
+
else
|
20
|
+
Digest::MD5.hexdigest(Digest::MD5.digest(str) + salt)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.sha1(str)
|
25
|
+
Digest::SHA1.hexdigest(str)
|
19
26
|
end
|
20
27
|
|
21
28
|
def self.sha512(str)
|
22
29
|
Digest::SHA512.hexdigest(str)
|
23
30
|
end
|
24
31
|
|
32
|
+
def self.whirlpool(str)
|
33
|
+
w = Whirlpool::Class.new
|
34
|
+
w.print_string(str).downcase
|
35
|
+
end
|
36
|
+
|
25
37
|
end
|
26
38
|
end
|
data/lib/kryptonita/version.rb
CHANGED
@@ -3,22 +3,41 @@ require "spec_helper"
|
|
3
3
|
module Kryptonita
|
4
4
|
describe Hash do
|
5
5
|
|
6
|
-
describe "
|
7
|
-
let(:hashed) { Kryptonita::Hash.
|
6
|
+
describe "md5" do
|
7
|
+
let(:hashed) { Kryptonita::Hash.md5("ruby") }
|
8
|
+
let(:hashed_with_salt) { Kryptonita::Hash.md5("ruby", salt: 'salt') }
|
8
9
|
|
9
10
|
it "returns a string" do
|
10
11
|
expect(hashed).to be_a(String)
|
12
|
+
expect(hashed_with_salt).to be_a(String)
|
11
13
|
end
|
12
14
|
|
13
|
-
it "returns a string with
|
14
|
-
expect(hashed.size).to eq(
|
15
|
+
it "returns a string with size 32" do
|
16
|
+
expect(hashed.size).to eq(32)
|
17
|
+
expect(hashed_with_salt.size).to eq(32)
|
15
18
|
end
|
16
19
|
|
17
20
|
it "returns a correct hash" do
|
18
|
-
expect(hashed).to eql("
|
21
|
+
expect(hashed).to eql("58e53d1324eef6265fdb97b08ed9aadf")
|
22
|
+
expect(hashed_with_salt).to eql("cb2dfb8002036f039bd61a1c1fbbbd3c")
|
19
23
|
end
|
20
24
|
end
|
21
25
|
|
26
|
+
describe "sha1" do
|
27
|
+
let(:hashed) { Kryptonita::Hash.sha1("ruby") }
|
28
|
+
|
29
|
+
it "returns a string" do
|
30
|
+
expect(hashed).to be_a(String)
|
31
|
+
end
|
32
|
+
|
33
|
+
it "returns a string with a size 40" do
|
34
|
+
expect(hashed.size).to eq(40)
|
35
|
+
end
|
36
|
+
|
37
|
+
it "returns a correct hash" do
|
38
|
+
expect(hashed).to eql("18e40e1401eef67e1ae69efab09afb71f87ffb81")
|
39
|
+
end
|
40
|
+
end
|
22
41
|
|
23
42
|
describe "#sha512" do
|
24
43
|
let(:hashed) { Kryptonita::Hash.sha512("ruby") }
|
@@ -36,5 +55,22 @@ module Kryptonita
|
|
36
55
|
end
|
37
56
|
end
|
38
57
|
|
58
|
+
describe "#whirlpool" do
|
59
|
+
let(:hashed) { Kryptonita::Hash.whirlpool("ruby") }
|
60
|
+
|
61
|
+
it "returns a string" do
|
62
|
+
expect(hashed).to be_a(String)
|
63
|
+
end
|
64
|
+
|
65
|
+
it "returns a string with a size 128" do
|
66
|
+
expect(hashed.size).to eq(128)
|
67
|
+
end
|
68
|
+
|
69
|
+
it "returns a correct hash" do
|
70
|
+
expect(hashed).to eql("95fc6a05b1edd849a202d9cdb1158930cf1e101900357a8816b743520710be2487c890c3bfb2b70f2308f7e8737473a477bb44950516c23e53a2993091faa9d2")
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
|
39
75
|
end
|
40
76
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kryptonita
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Patrício dos Santos
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-01-
|
11
|
+
date: 2015-01-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|