twilioauth 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.
data/Gemfile.lock CHANGED
@@ -2,13 +2,11 @@ PATH
2
2
  remote: .
3
3
  specs:
4
4
  twilioauth (0.0.3)
5
- activesupport (>= 3.0.0)
6
5
  twilio-ruby
7
6
 
8
7
  GEM
9
8
  remote: http://rubygems.org/
10
9
  specs:
11
- activesupport (3.0.0)
12
10
  builder (3.0.0)
13
11
  jwt (0.1.5)
14
12
  multi_json (>= 1.0)
data/lib/twilioauth.rb CHANGED
@@ -27,9 +27,77 @@ module Twilioauth
27
27
 
28
28
  def self.auth(number, options = {})
29
29
  connection = Twilioauth::Connection.new(options[:account_sid], options[:auth_token])
30
- newpin = ActiveSupport::SecureRandom.hex(3)
30
+ newpin = random_bytes(3).unpack("H*")[0]
31
31
  connection.sms(newpin, number)
32
32
  return newpin
33
33
  end
34
34
 
35
+ def self.random_bytes(n=nil)
36
+ n ||= 16
37
+
38
+ unless defined? OpenSSL
39
+ begin
40
+ require 'openssl'
41
+ rescue LoadError
42
+ end
43
+ end
44
+
45
+ if defined? OpenSSL::Random
46
+ return OpenSSL::Random.random_bytes(n)
47
+ end
48
+
49
+ if !defined?(@has_urandom) || @has_urandom
50
+ flags = File::RDONLY
51
+ flags |= File::NONBLOCK if defined? File::NONBLOCK
52
+ flags |= File::NOCTTY if defined? File::NOCTTY
53
+ flags |= File::NOFOLLOW if defined? File::NOFOLLOW
54
+ begin
55
+ File.open("/dev/urandom", flags) {|f|
56
+ unless f.stat.chardev?
57
+ raise Errno::ENOENT
58
+ end
59
+ @has_urandom = true
60
+ ret = f.readpartial(n)
61
+ if ret.length != n
62
+ raise NotImplementedError, "Unexpected partial read from random device"
63
+ end
64
+ return ret
65
+ }
66
+ rescue Errno::ENOENT
67
+ @has_urandom = false
68
+ end
69
+ end
70
+
71
+ if !defined?(@has_win32)
72
+ begin
73
+ require 'Win32API'
74
+
75
+ crypt_acquire_context = Win32API.new("advapi32", "CryptAcquireContext", 'PPPII', 'L')
76
+ @crypt_gen_random = Win32API.new("advapi32", "CryptGenRandom", 'LIP', 'L')
77
+
78
+ hProvStr = " " * 4
79
+ prov_rsa_full = 1
80
+ crypt_verifycontext = 0xF0000000
81
+
82
+ if crypt_acquire_context.call(hProvStr, nil, nil, prov_rsa_full, crypt_verifycontext) == 0
83
+ raise SystemCallError, "CryptAcquireContext failed: #{lastWin32ErrorMessage}"
84
+ end
85
+ @hProv, = hProvStr.unpack('L')
86
+
87
+ @has_win32 = true
88
+ rescue LoadError
89
+ @has_win32 = false
90
+ end
91
+ end
92
+ if @has_win32
93
+ bytes = " " * n
94
+ if @crypt_gen_random.call(@hProv, bytes.size, bytes) == 0
95
+ raise SystemCallError, "CryptGenRandom failed: #{lastWin32ErrorMessage}"
96
+ end
97
+ return bytes
98
+ end
99
+
100
+ raise NotImplementedError, "No random device"
101
+ end
102
+
35
103
  end
data/twilioauth.gemspec CHANGED
@@ -3,7 +3,7 @@ $:.unshift lib unless $:.include?(lib)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = 'twilioauth'
6
- s.version = '0.0.3'
6
+ s.version = '0.0.4'
7
7
  s.date = '2012-08-08'
8
8
  s.summary = "2 factor auth for twilio"
9
9
  s.description = "2 factor auth for twilio"
@@ -17,10 +17,8 @@ Gem::Specification.new do |s|
17
17
  s.require_path = 'lib'
18
18
 
19
19
  s.requirements << "twilio-ruby"
20
- s.requirements << "activesupport"
21
20
 
22
21
  s.add_dependency "twilio-ruby"
23
- s.add_dependency "activesupport", ">= 3.0.0"
24
22
 
25
23
 
26
24
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twilioauth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -27,22 +27,6 @@ dependencies:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
29
  version: '0'
30
- - !ruby/object:Gem::Dependency
31
- name: activesupport
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ! '>='
36
- - !ruby/object:Gem::Version
37
- version: 3.0.0
38
- type: :runtime
39
- prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: 3.0.0
46
30
  description: 2 factor auth for twilio
47
31
  email: kmahan@kmahan.com
48
32
  executables: []
@@ -76,7 +60,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
76
60
  version: '0'
77
61
  requirements:
78
62
  - twilio-ruby
79
- - activesupport
80
63
  rubyforge_project:
81
64
  rubygems_version: 1.8.24
82
65
  signing_key: