cryptology 1.1.0 → 1.2.0

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: 87ffdef922d38150c58aace752ca1656791678a5
4
- data.tar.gz: 6e74ff79379bb8d0242f1465a2072ccbab1666eb
3
+ metadata.gz: 22580eefd3a2222b7f68ac139bbc4e4e6ef2b1f8
4
+ data.tar.gz: 514c5cae153148249950f52a5b8cad69cb9f7d8b
5
5
  SHA512:
6
- metadata.gz: 8845e0fbfa4e0b69e36a7e18a4c896737f72731f8c703c108e1772503d987a8d16a82fd6665cb604b6e8743a319c8598b6674e746b5b68c94f4ad542b536817b
7
- data.tar.gz: f031d742a21a2c42c871bb8b7aa284effc30f5053925d753c3f3fb3f8f629365195370714802dbc8e7bd40b1190fef3a9450d71636122f0ca4ea44ff72a182f2
6
+ metadata.gz: c565bdf3263f22f22223bacec3390c459d426302b632c8f42765e33c0afcdfdd45899a8cdcd40fbd2ca60b984343414c6e989352c67e4a6f74c9f74377106f9a
7
+ data.tar.gz: 2d7cb662f8a8718080e3d2f1bc0c7b5c2174ab9e73e3c82789079d8ed406946c943e8203fb7ae73d6534042f66617fb310dadf6841b43c63b2555d1ea014405d
@@ -1,3 +1,7 @@
1
+ ## 1.2.0 (2015-12-10)
2
+
3
+ - Improvement: Add decryptable? helper method
4
+
1
5
  ## 1.1.0 (2015-12-08)
2
6
 
3
7
  - Improvement: Switch to keyword arguments
data/README.md CHANGED
@@ -29,8 +29,12 @@ Cryptology.encrypt(data: data, key: key, cipher: cipher, iv: iv)
29
29
 
30
30
  # Decrypting
31
31
  Cryptology.decrypt(data: data, key: key, cipher: cipher, iv: iv)
32
+
33
+ # Check decryption ability (true if can be decrypted, false otherwise)
34
+ Cryptology.decryptable?(data: data, key: key, cipher: cipher, iv: iv)
32
35
  ```
33
36
 
37
+
34
38
  Argument | Required? | Default | Comment
35
39
  ---------|-----------|---------------|-------------
36
40
  data | **Yes** | n/a | Data to encrypt or decrypt
@@ -53,9 +57,12 @@ iv = OpenSSL::Cipher::Cipher.new(cipher).random_iv
53
57
  # Encrypt our data
54
58
  encrypted = Cryptology.encrypt(data: data, key: key, cipher: cipher, iv: iv)
55
59
 
60
+ # Verify that data can be decrypted
61
+ Cryptology.decryptable?(data: encrypted, key: key, cipher: cipher, iv: iv)
62
+ # => true
63
+
56
64
  # Decrypt our data
57
65
  plain = Cryptology.decrypt(data: encrypted, key: key, cipher: cipher, iv: iv)
58
-
59
66
  ```
60
67
 
61
68
  ### Cipher algorithms
@@ -14,6 +14,12 @@ module Cryptology
14
14
  .force_encoding('UTF-8').encode
15
15
  end
16
16
 
17
+ def self.decryptable?(data:, key:, cipher: 'AES-256-CBC', iv: nil)
18
+ return true if decrypt(data: data, key: key, cipher: cipher, iv: iv)
19
+ rescue OpenSSL::Cipher::CipherError
20
+ return false
21
+ end
22
+
17
23
  private
18
24
 
19
25
  def self.encrypt_data(data, key, cipher, iv)
@@ -1,3 +1,3 @@
1
1
  module Cryptology
2
- VERSION = '1.1.0'
2
+ VERSION = '1.2.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cryptology
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitriy Tarasov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-12-08 00:00:00.000000000 Z
11
+ date: 2015-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake