trocla 0.0.11 → 0.0.12

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
  SHA1:
3
- metadata.gz: 9f47b10d377d9df9610ed135f152232c0206d836
4
- data.tar.gz: f464646c4b9af0930b230f4eed28aacb124b2998
3
+ metadata.gz: aedf1283f7a8f2526fa0fbacc4a528fe1ca7766b
4
+ data.tar.gz: 65c068af80a674b2a7aa3783398e1949b9b6f099
5
5
  SHA512:
6
- metadata.gz: 6c8299aded1f3c0fff6cb7b2f2569fd8da2ae7c59a5714f1afdb4ca4bc64bef08ebb8f08e3c3563fbc1bdeb220d42d9c2f0919d22655063c84cc9de0f767e1e4
7
- data.tar.gz: 45eda8f07fdf7fede2a8b10f58f758068baf41b6fd3deb5a3746d2d5484a71af1a318d2831d9c6a690f67415cfd364d2851d4e0e4b988ee0a13887cb1438bcb5
6
+ metadata.gz: 512edf03fd9448678710db03cc436790242263407857a3a60f3daeb316dc397c2543722b0a5a077e8714c16f658a4d090eb7c0bddb7b1715a3d46ea49612a6d9
7
+ data.tar.gz: 902809c87796656c33b21106a9780fee8d84db92fa8fe92a1e60d543a325dfe7f7b2cb31eb7ff60d44ed1ad57d2fb8365a72d645d0acbcb4cd94ac5fc11bfd9a
data/README.md CHANGED
@@ -127,6 +127,11 @@ Simply build and install the gem.
127
127
 
128
128
  ## Update & Changes
129
129
 
130
+ ### to 0.0.12
131
+
132
+ 1. change from sha1 signature for the x509 format to sha2
133
+ 1. Fix an issue where shellsafe characters might have already been initialized with shell-unsafe characters. Plz review any shell-safe character passwords regarding this problem. See the [fix](https://github.com/duritong/trocla/pull/19) for more information. Thanks [asquelt](https://github.com/asquelt) for the fix.
134
+
130
135
  ### to 0.0.8
131
136
 
132
137
  1. be sure to update as well the moneta gem, trocla now uses the official moneta releases and supports current avaiable versions.
@@ -147,6 +152,6 @@ Simply build and install the gem.
147
152
 
148
153
  ## Copyright
149
154
 
150
- Copyright (c) 2011 mh. See LICENSE.txt for
155
+ Copyright (c) 2014 mh. See LICENSE.txt for
151
156
  further details.
152
157
 
data/lib/VERSION CHANGED
@@ -1,4 +1,4 @@
1
1
  major:0
2
2
  minor:0
3
- patch:11
3
+ patch:12
4
4
  build:
@@ -17,6 +17,7 @@ class Trocla::Formats::X509 < Trocla::Formats::Base
17
17
  else
18
18
  raise "You need to pass \"subject\" or \"CN\" as an option to use this format"
19
19
  end
20
+ hash = options['hash'] || 'sha2'
20
21
  sign_with = options['ca'] || nil
21
22
  keysize = options['keysize'] || 2048
22
23
  serial = options['serial'] || 1
@@ -42,14 +43,14 @@ class Trocla::Formats::X509 < Trocla::Formats::Base
42
43
  begin
43
44
  subj = OpenSSL::X509::Name.parse(subject)
44
45
  request = mkreq(subj, key.public_key)
45
- request.sign(key, OpenSSL::Digest::SHA1.new)
46
+ request.sign(key, signature(hash))
46
47
  rescue Exception => e
47
48
  raise "Certificate request #{subject} creation failed: #{e.message}"
48
49
  end
49
50
 
50
51
  begin
51
52
  csr_cert = mkcert(caserial, request.subject, ca, request.public_key, days, altnames)
52
- csr_cert.sign(cakey, OpenSSL::Digest::SHA1.new)
53
+ csr_cert.sign(cakey, signature(hash))
53
54
  setserial(sign_with, caserial)
54
55
  rescue Exception => e
55
56
  raise "Certificate #{subject} signing failed: #{e.message}"
@@ -60,7 +61,7 @@ class Trocla::Formats::X509 < Trocla::Formats::Base
60
61
  begin
61
62
  subj = OpenSSL::X509::Name.parse(subject)
62
63
  cert = mkcert(serial, subj, nil, key.public_key, days, altnames)
63
- cert.sign(key, OpenSSL::Digest::SHA1.new)
64
+ cert.sign(key, signature(hash))
64
65
  rescue Exception => e
65
66
  raise "Self-signed certificate #{subject} creation failed: #{e.message}"
66
67
  end
@@ -72,6 +73,22 @@ class Trocla::Formats::X509 < Trocla::Formats::Base
72
73
 
73
74
  # nice help: https://gist.github.com/mitfik/1922961
74
75
 
76
+ def signature(hash = 'sha2')
77
+ if hash == 'sha1'
78
+ OpenSSL::Digest::SHA1.new
79
+ elsif hash == 'sha224'
80
+ OpenSSL::Digest::SHA224.new
81
+ elsif hash == 'sha2' || hash == 'sha256'
82
+ OpenSSL::Digest::SHA256.new
83
+ elsif hash == 'sha384'
84
+ OpenSSL::Digest::SHA384.new
85
+ elsif hash == 'sha512'
86
+ OpenSSL::Digest::SHA512.new
87
+ else
88
+ raise "Unrecognized hash: #{hash}"
89
+ end
90
+ end
91
+
75
92
  def mkkey(len)
76
93
  OpenSSL::PKey::RSA.generate(len)
77
94
  end
data/lib/trocla/util.rb CHANGED
@@ -27,7 +27,7 @@ class Trocla
27
27
  @chars ||= shellsafe + special_chars
28
28
  end
29
29
  def shellsafe
30
- @chars ||= alphanumeric + shellsafe_chars
30
+ @shellsafe ||= alphanumeric + shellsafe_chars
31
31
  end
32
32
  def alphanumeric
33
33
  @alphanumeric ||= ('a'..'z').to_a + ('A'..'Z').to_a + ('0'..'9').to_a
data/trocla.gemspec CHANGED
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: trocla 0.0.11 ruby lib
5
+ # stub: trocla 0.0.12 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "trocla"
9
- s.version = "0.0.11"
9
+ s.version = "0.0.12"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["mh"]
14
- s.date = "2014-08-21"
14
+ s.date = "2014-12-25"
15
15
  s.description = "Trocla helps you to generate random passwords and to store them in various formats (plain, MD5, bcrypt) for later retrival."
16
16
  s.email = "mh+trocla@immerda.ch"
17
17
  s.executables = ["trocla"]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trocla
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - mh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-21 00:00:00.000000000 Z
11
+ date: 2014-12-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: moneta