session_keys 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,3 @@
1
+ module SessionKeys
2
+ VERSION = '0.1.0'.freeze
3
+ end
@@ -0,0 +1,68 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'session_keys/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'session_keys'
8
+ spec.version = SessionKeys::VERSION
9
+ spec.authors = ['Glenn Rempe']
10
+ spec.email = ['glenn@rempe.us']
11
+
12
+ spec.required_ruby_version = '>= 2.1.0'
13
+
14
+ cert = File.expand_path('~/.gem-certs/gem-private_key_grempe.pem')
15
+ if cert && File.exist?(cert)
16
+ spec.signing_key = cert
17
+ spec.cert_chain = ['certs/gem-public_cert_grempe.pem']
18
+ end
19
+
20
+ spec.summary = <<-EOF
21
+ SessionKeys generates a deterministic user ID and NaCl encryption/signing
22
+ keypairs from an identifier, such as a username or email address, a
23
+ password, and a strength value.
24
+ EOF
25
+
26
+ spec.description = <<-EOF
27
+ SessionKeys is a cryptographic tool for the deterministic generation of
28
+ NaCl compatible [Curve25519](https://cr.yp.to/ecdh.html) encryption and
29
+ [Ed25519](http://ed25519.cr.yp.to) digital signature keys.
30
+
31
+ The strength of the system lies in the fact that the keypairs are derived from
32
+ passing an identifier, such as a username or email address, and a high-entropy
33
+ passphrase through the `SHA256` hash and the `scrypt` key derivation
34
+ functions. This means that no private key material need ever be stored to disk.
35
+ The generated keys are deterministic; for any given ID, password, and
36
+ strength combination the same keys will always be returned.
37
+
38
+ The generated ID is passed through `SHA256` and `scrypt` and is derived from
39
+ only the ID parameter your provide and a common salt.
40
+
41
+ The password is also passed through `SHA256` and `scrypt` and NaCl encryption
42
+ and signing keypairs are derived from the combination of the stretched ID,
43
+ your password, and a common salt.
44
+ EOF
45
+
46
+ spec.homepage = 'https://github.com/grempe/session-keys-rb'
47
+ spec.license = 'MIT'
48
+
49
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
50
+ spec.bindir = 'exe'
51
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
52
+ spec.require_paths = ['lib']
53
+
54
+ # FIXME : uncomment when @bascule publishes new rbnacl release
55
+ # and remove from Gemfile.
56
+ # https://github.com/cryptosphere/rbnacl/pull/135
57
+ # spec.add_dependency 'rbnacl', '~> 3.3.0'
58
+ spec.add_dependency 'rbnacl-libsodium', '~> 1.0'
59
+ spec.add_dependency 'zxcvbn-ruby', '~> 0.1'
60
+
61
+ spec.add_development_dependency 'bundler', '~> 1.12'
62
+ spec.add_development_dependency 'rake', '~> 11.0'
63
+ spec.add_development_dependency 'minitest', '~> 5.0'
64
+ spec.add_development_dependency 'pry', '~> 0.10'
65
+ spec.add_development_dependency 'coveralls', '~> 0.8'
66
+ spec.add_development_dependency 'coco', '~> 0.14'
67
+ spec.add_development_dependency 'wwtd', '~> 1.3'
68
+ end
metadata ADDED
@@ -0,0 +1,229 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: session_keys
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Glenn Rempe
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDYDCCAkigAwIBAgIBATANBgkqhkiG9w0BAQUFADA7MQ4wDAYDVQQDDAVnbGVu
14
+ bjEVMBMGCgmSJomT8ixkARkWBXJlbXBlMRIwEAYKCZImiZPyLGQBGRYCdXMwHhcN
15
+ MTYwNDExMDI0NTU0WhcNMTcwNDExMDI0NTU0WjA7MQ4wDAYDVQQDDAVnbGVubjEV
16
+ MBMGCgmSJomT8ixkARkWBXJlbXBlMRIwEAYKCZImiZPyLGQBGRYCdXMwggEiMA0G
17
+ CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZqTH5Jf+D/W2B4BIiL49CpHa86rK/
18
+ oT+v3xZwuEE92lJea+ygn3IAsidVTW47AKE6Lt3UqUkGQGKxsqH/Dhir08BqjLlD
19
+ gBUozGZpM3B6uWZnD6QXLbOmZeGVDnwB/QDfzaawN1i3smlYxYT+KNLjl80aN3we
20
+ /cHAWG7JG47AF/S91mYcg1WgZnDgZt9+RyVR1AsfYbM+SidOSoXEOHPCbuUxLKJb
21
+ gj5ieCFhm5GNWEugvgiX/ruas+VHV0fF3fzjYlU2fZPTuQyB4UD5FWX4UqdsBf3w
22
+ jB94TDBsJ3FVGPbggEhLGKd8pbQmBIOqXolGaqhs7dnuf5imu5mAXHC1AgMBAAGj
23
+ bzBtMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBRfxEyosUbKjfFa
24
+ j+gae2CcT3aFCTAZBgNVHREEEjAQgQ5nbGVubkByZW1wZS51czAZBgNVHRIEEjAQ
25
+ gQ5nbGVubkByZW1wZS51czANBgkqhkiG9w0BAQUFAAOCAQEAzgK20+MNOknR9Kx6
26
+ RisI3DsioCADjGldxY+INrwoTfPDVmNm4GdTYC+V+/BvxJw1RqHjEbuXSg0iibQC
27
+ 4vN+th0Km7dnas/td1i+EKfGencfyQyecIaG9l3kbCkCWnldRtZ+BS5EfP2ML2u8
28
+ fyCtze/Piovu8IwXL1W5kGZMnvzLmWxdqI3VPUou40n8F+EiMMLgd53kpzjtNOau
29
+ 4W+mqVGOwlEGVSgI5+0SIsD8pvc62PlPWTv0kn1bcufKKCZmoVmpfbe3j4JpBInq
30
+ zieXiXZSAojfFx9g91fKdIrlPbInHU/BaCxXSLBwvOM0drE+c2ue9X8gB55XAhzX
31
+ 37oBiw==
32
+ -----END CERTIFICATE-----
33
+ date: 2016-05-01 00:00:00.000000000 Z
34
+ dependencies:
35
+ - !ruby/object:Gem::Dependency
36
+ name: rbnacl-libsodium
37
+ requirement: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '1.0'
42
+ type: :runtime
43
+ prerelease: false
44
+ version_requirements: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '1.0'
49
+ - !ruby/object:Gem::Dependency
50
+ name: zxcvbn-ruby
51
+ requirement: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '0.1'
56
+ type: :runtime
57
+ prerelease: false
58
+ version_requirements: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '0.1'
63
+ - !ruby/object:Gem::Dependency
64
+ name: bundler
65
+ requirement: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '1.12'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: '1.12'
77
+ - !ruby/object:Gem::Dependency
78
+ name: rake
79
+ requirement: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '11.0'
84
+ type: :development
85
+ prerelease: false
86
+ version_requirements: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '11.0'
91
+ - !ruby/object:Gem::Dependency
92
+ name: minitest
93
+ requirement: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: '5.0'
98
+ type: :development
99
+ prerelease: false
100
+ version_requirements: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - "~>"
103
+ - !ruby/object:Gem::Version
104
+ version: '5.0'
105
+ - !ruby/object:Gem::Dependency
106
+ name: pry
107
+ requirement: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - "~>"
110
+ - !ruby/object:Gem::Version
111
+ version: '0.10'
112
+ type: :development
113
+ prerelease: false
114
+ version_requirements: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - "~>"
117
+ - !ruby/object:Gem::Version
118
+ version: '0.10'
119
+ - !ruby/object:Gem::Dependency
120
+ name: coveralls
121
+ requirement: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: '0.8'
126
+ type: :development
127
+ prerelease: false
128
+ version_requirements: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - "~>"
131
+ - !ruby/object:Gem::Version
132
+ version: '0.8'
133
+ - !ruby/object:Gem::Dependency
134
+ name: coco
135
+ requirement: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: '0.14'
140
+ type: :development
141
+ prerelease: false
142
+ version_requirements: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - "~>"
145
+ - !ruby/object:Gem::Version
146
+ version: '0.14'
147
+ - !ruby/object:Gem::Dependency
148
+ name: wwtd
149
+ requirement: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - "~>"
152
+ - !ruby/object:Gem::Version
153
+ version: '1.3'
154
+ type: :development
155
+ prerelease: false
156
+ version_requirements: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - "~>"
159
+ - !ruby/object:Gem::Version
160
+ version: '1.3'
161
+ description: |2
162
+ SessionKeys is a cryptographic tool for the deterministic generation of
163
+ NaCl compatible [Curve25519](https://cr.yp.to/ecdh.html) encryption and
164
+ [Ed25519](http://ed25519.cr.yp.to) digital signature keys.
165
+
166
+ The strength of the system lies in the fact that the keypairs are derived from
167
+ passing an identifier, such as a username or email address, and a high-entropy
168
+ passphrase through the `SHA256` hash and the `scrypt` key derivation
169
+ functions. This means that no private key material need ever be stored to disk.
170
+ The generated keys are deterministic; for any given ID, password, and
171
+ strength combination the same keys will always be returned.
172
+
173
+ The generated ID is passed through `SHA256` and `scrypt` and is derived from
174
+ only the ID parameter your provide and a common salt.
175
+
176
+ The password is also passed through `SHA256` and `scrypt` and NaCl encryption
177
+ and signing keypairs are derived from the combination of the stretched ID,
178
+ your password, and a common salt.
179
+ email:
180
+ - glenn@rempe.us
181
+ executables: []
182
+ extensions: []
183
+ extra_rdoc_files: []
184
+ files:
185
+ - ".coco.yml"
186
+ - ".gitignore"
187
+ - ".rubocop.yml"
188
+ - ".ruby-version"
189
+ - ".travis.yml"
190
+ - ".yardopts"
191
+ - CODE_OF_CONDUCT.md
192
+ - Gemfile
193
+ - LICENSE.txt
194
+ - README.md
195
+ - Rakefile
196
+ - bin/console
197
+ - bin/setup
198
+ - certs/gem-public_cert_grempe.pem
199
+ - lib/session_keys.rb
200
+ - lib/session_keys/version.rb
201
+ - session_keys.gemspec
202
+ homepage: https://github.com/grempe/session-keys-rb
203
+ licenses:
204
+ - MIT
205
+ metadata: {}
206
+ post_install_message:
207
+ rdoc_options: []
208
+ require_paths:
209
+ - lib
210
+ required_ruby_version: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - ">="
213
+ - !ruby/object:Gem::Version
214
+ version: 2.1.0
215
+ required_rubygems_version: !ruby/object:Gem::Requirement
216
+ requirements:
217
+ - - ">="
218
+ - !ruby/object:Gem::Version
219
+ version: '0'
220
+ requirements: []
221
+ rubyforge_project:
222
+ rubygems_version: 2.5.1
223
+ signing_key:
224
+ specification_version: 4
225
+ summary: SessionKeys generates a deterministic user ID and NaCl encryption/signing
226
+ keypairs from an identifier, such as a username or email address, a password, and
227
+ a strength value.
228
+ test_files: []
229
+ has_rdoc:
@@ -0,0 +1,3 @@
1
+ �Q^�Ő`�:�
2
+ �gcO����ب�g�f$���È��W˷[���e M���U��cOK��zZj��4ɺ��L�9�|m��85CgE�o�H%��0���~yl�"�I'�>̼���HjX�N�`�/T�D�ۤ��7/�o��Γ��%�H�kӕ���3I���ox��e̟2+��6[��5�q<N�>TW�$^0�;8U�dW�.����k[�E]��v��I��R����8�3B������߹A
3
+ ��Ÿk?