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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 006098adc496eebb23ab9c02422bad0b71bbd141
4
- data.tar.gz: 919397a66ec03e852e7cefc8d61d50e58f3eeb2f
3
+ metadata.gz: 9a9cd5c151e6d6301e39f0af90f109bd46090c37
4
+ data.tar.gz: a525fd7edc440759cb02a8b6d545890e6bc2d192
5
5
  SHA512:
6
- metadata.gz: 0981f5e8bed17773f8fb770fedd2700ff337078fbe8670c2bbacf7f71cd0b208d3752959e9dc9310b77c52618b40409db8aa0e98c02754bb303a83ffd0aa1287
7
- data.tar.gz: 79c61c3bbd0c3befd0dcd9263696b463bee18a430be2d33a02063edbd55533da513cb9dc3c2cd84d6f66bbec97ef3310d82364a37bfd0889f3d8def9962e34dc
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
- # Gemfile.lock
30
- # .ruby-version
31
- # .ruby-gemset
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
+ [![Build Status](https://api.travis-ci.org/dlanner/crumbl.png?branch=master)](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" --data session_type:admin
21
- QnprY1BXSlI3WFo1MkxlZmJ6REE3b1N2ZExFaHdqYncvYnNTcHZTL0dQbmZ3RVVwU3hxNmpiVkJtQmNOTW4zYy0tNitvbnhGQ0szbWtIOTU4czNzMnJSUT09--4f397df94a66a3449511485c76e130ac10a35f32
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
- $ crumbl decode BAh7BkkiEXNlc3Npb25fdHlwZQY6BkVUSSIJdXNlcgY7AFQ=--ff2751f14c049e970cd817b6bbb6575b7c8a7bd8
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" --data session_type:admin
35
- BAh7BkkiEXNlc3Npb25fdHlwZQY6BkVUSSIKYWRtaW4GOwBU--a44fc16d8c2f185e4b667c4276e790ae1d40c505
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] --data [DATA]", "Encode [DATA] as a Rails 3 cookie signed with secret key [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 Crumbl.encode options[:data], key
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] --data [DATA]", "Encrypt Rails 4 [DATA] using secret key base [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 Crumbl.encrypt options[:data], secret_key_base, options[:iterations], options[:encrypted_cookie_salt], options[:encrypted_signed_cookie_salt]
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
 
@@ -19,5 +19,6 @@ Gem::Specification.new do |s|
19
19
  'https://github.com/dlanner/crumbl'
20
20
  s.license = 'MIT'
21
21
  s.add_runtime_dependency "rack"
22
+ s.add_runtime_dependency "thor"
22
23
  s.add_runtime_dependency "activesupport", '~> 4.0.0'
23
24
  end
@@ -1,3 +1,3 @@
1
1
  module Crumbl
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
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.3
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