crumbl 0.0.3 → 0.0.4

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: 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