crumbl 0.0.3 → 0.0.4
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 +4 -4
- data/.gitignore +3 -3
- data/README.md +12 -5
- data/bin/crumbl +26 -6
- data/crumbl.gemspec +1 -0
- data/lib/crumbl/version.rb +1 -1
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9a9cd5c151e6d6301e39f0af90f109bd46090c37
|
4
|
+
data.tar.gz: a525fd7edc440759cb02a8b6d545890e6bc2d192
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f83a7a2e08b4fc42262d210372f6afe0e0c3962ff6a2b0c9cac214ab2a94c3765fd680e5209dd47a7ef51f670f180b4c7f16b64fa2edef80f2697215011e5431
|
7
|
+
data.tar.gz: 101da5b7c6fd3bcfbce9ac8a8566781c026711fa97e2a8c371aae4f1e5245395d9eca37ceed4a9ffd3531424373623c50eff19a9c70e18bbd746ac7949715ea8
|
data/.gitignore
CHANGED
@@ -26,9 +26,9 @@ build/
|
|
26
26
|
|
27
27
|
# for a library or gem, you might want to ignore these files since the code is
|
28
28
|
# intended to run in multiple environments; otherwise, check them in:
|
29
|
-
|
30
|
-
|
31
|
-
|
29
|
+
Gemfile.lock
|
30
|
+
.ruby-version
|
31
|
+
.ruby-gemset
|
32
32
|
|
33
33
|
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
34
34
|
.rvmrc
|
data/README.md
CHANGED
@@ -3,6 +3,8 @@ crumbl
|
|
3
3
|
|
4
4
|
Command line tool for reading and manipulating encoded or encrypted Rails cookies
|
5
5
|
|
6
|
+
[](https://travis-ci.org/dlanner/crumbl)
|
7
|
+
|
6
8
|
# Installation
|
7
9
|
`gem install crumbl`
|
8
10
|
|
@@ -17,20 +19,25 @@ $ crumbl decrypt "secret key base" RWRWZ0xHSEsrNmx1TlZFOEpmcCtNVEY4QjdKelNETWlNd
|
|
17
19
|
|
18
20
|
#### Encrypt Rails 4 cookie:
|
19
21
|
```
|
20
|
-
$ crumbl encrypt "secret key base"
|
21
|
-
|
22
|
+
$ crumbl encrypt "secret key base"
|
23
|
+
Data to encrypt:
|
24
|
+
crumbl> {:session_type=>"admin"}
|
25
|
+
=> eXV1ckhjbHhiTjMrOFI1VzVWUzNrNnFSQnhFZzdWNE5iS2ZvaFRHRFBtaz0tLVQvNmhGSE5KeENFbWxUd0pHV2RLbnc9PQ==--7061c2425a407e5820d33d68739f54cf8a072ca3
|
22
26
|
```
|
23
27
|
|
24
28
|
#### Decode Rails 3 signed cookie:
|
25
29
|
|
26
30
|
```
|
27
|
-
|
31
|
+
# crumble decode BAh7BjoRc2Vzc2lvbl90eXBlSSIJdXNlcgY6BkVU--b5ff66e18316d861087756523d129a17fcc801af
|
28
32
|
{"session_type"=>"user"}
|
29
33
|
```
|
30
34
|
|
31
35
|
#### Encode Rails 3 signed cookie:
|
32
36
|
|
33
37
|
```
|
34
|
-
$ crumbl encode "signing key"
|
35
|
-
|
38
|
+
$ crumbl encode "signing key"
|
39
|
+
Data to encode:
|
40
|
+
crumbl> {:session_type=>"admin"}
|
41
|
+
=> BAh7BjoRc2Vzc2lvbl90eXBlSSIKYWRtaW4GOgZFVA==--c2d31489de15c835a8984011f0d36f44679ad5ad
|
42
|
+
|
36
43
|
```
|
data/bin/crumbl
CHANGED
@@ -15,10 +15,12 @@ class CrumblCmd < Thor
|
|
15
15
|
puts Crumbl.decode cookie
|
16
16
|
end
|
17
17
|
|
18
|
-
desc "encode [KEY]
|
19
|
-
method_option :data, :aliases => "-d", :type => :hash, :required => true
|
18
|
+
desc "encode [KEY]", "Encode [DATA] as a Rails 3 cookie signed with secret key [KEY]"
|
20
19
|
def encode(key)
|
21
|
-
puts
|
20
|
+
puts "Data to encode: "
|
21
|
+
data = read_eval
|
22
|
+
encoded = Crumbl.encode data, key
|
23
|
+
show_result encoded
|
22
24
|
end
|
23
25
|
|
24
26
|
desc "decrypt [KEY BASE] [COOKIE]", "Decrypt Rails 4 [COOKIE] using secret key base [KEY BASE]"
|
@@ -29,13 +31,31 @@ class CrumblCmd < Thor
|
|
29
31
|
puts Crumbl.decrypt cookie, secret_key_base, options[:iterations], options[:encrypted_cookie_salt], options[:encrypted_signed_cookie_salt]
|
30
32
|
end
|
31
33
|
|
32
|
-
desc "encrypt [KEY BASE]
|
33
|
-
method_option :data, :aliases => "-d", :type => :hash, :required => true
|
34
|
+
desc "encrypt [KEY BASE]", "Encrypt Rails 4 [DATA] using secret key base [KEY BASE]"
|
34
35
|
method_option :iterations, :aliases => "-i", :default => Crumbl::DEFAULT_ITERATIONS, :type => :numeric
|
35
36
|
method_option :encrypted_cookie_salt, :aliases => "-e", :default => Crumbl::DEFAULT_ENCRYPTED_COOKIE_SALT
|
36
37
|
method_option :encrypted_signed_cookie_salt, :aliases => "-s", :default => Crumbl::DEFAULT_ENCRYPTED_SIGNED_COOKIE_SALT
|
37
38
|
def encrypt(secret_key_base)
|
38
|
-
puts
|
39
|
+
puts "Data to encrypt: "
|
40
|
+
data = read_eval
|
41
|
+
encrypted = Crumbl.encrypt data, secret_key_base, options[:iterations], options[:encrypted_cookie_salt], options[:encrypted_signed_cookie_salt]
|
42
|
+
show_result encrypted
|
43
|
+
end
|
44
|
+
|
45
|
+
no_commands do
|
46
|
+
def read_eval
|
47
|
+
print "crumbl> "
|
48
|
+
input = get_input
|
49
|
+
result = eval(input)
|
50
|
+
end
|
51
|
+
|
52
|
+
def show_result result
|
53
|
+
puts("=> #{result}")
|
54
|
+
end
|
55
|
+
|
56
|
+
def get_input
|
57
|
+
STDIN.gets.chomp!
|
58
|
+
end
|
39
59
|
end
|
40
60
|
end
|
41
61
|
|
data/crumbl.gemspec
CHANGED
data/lib/crumbl/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: crumbl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Lanner
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: thor
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: activesupport
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|