win32-security 0.3.3 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/CHANGES +6 -0
- data/certs/djberg96_pub.pem +21 -21
- data/lib/win32/security.rb +2 -1
- data/lib/win32/security/sid.rb +10 -9
- data/lib/win32/security/windows/functions.rb +2 -7
- data/lib/win32/security/windows/helper.rb +10 -0
- data/test/test_security.rb +1 -1
- data/win32-security.gemspec +1 -1
- metadata +3 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b99c41fd2bd78061d9b7b6fcb39816de3384c561
|
4
|
+
data.tar.gz: d11ca28544ad66864128d6000d3edde7f529fa74
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8fe3a69f36067b039c6bd86b0fd2dd0d018dd6afa57c0aa2c6beb30ebae232ed30fffdce8c0e4581c390718fce52e4aea18eb8fb8086f303e236783a27c242b6
|
7
|
+
data.tar.gz: e0b2987762703a34b80a32bfb7057c7f47f65328f7da9ed9dfea2c4607bb4320827583723065b4d17b1f3462f1e42ef641c8d4c9f1763ac71d1a1171be83e5bc
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/CHANGES
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
== 0.4.0 - 7-Mar-2016
|
2
|
+
* Added wide character support. Thanks go to Ethan J. Brown for finally forcing
|
3
|
+
me to get around to this.
|
4
|
+
* Removed some unused FFI functions.
|
5
|
+
* Added the String#wstrip helper method if not already defined.
|
6
|
+
|
1
7
|
== 0.3.3 - 1-Mar-2016
|
2
8
|
* Fixed a potential bug in the Win32::Security::SID constructor. Thanks go
|
3
9
|
to nmeilick for the spot and patch.
|
data/certs/djberg96_pub.pem
CHANGED
@@ -1,21 +1,21 @@
|
|
1
|
-
-----BEGIN CERTIFICATE-----
|
2
|
-
MIIDcDCCAligAwIBAgIBATANBgkqhkiG9w0BAQUFADA/MREwDwYDVQQDDAhkamJl
|
3
|
-
cmc5NjEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQBGRYDY29t
|
4
|
-
MB4XDTE1MDkwMjIwNDkxOFoXDTE2MDkwMTIwNDkxOFowPzERMA8GA1UEAwwIZGpi
|
5
|
-
ZXJnOTYxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkWA2Nv
|
6
|
-
bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMyTkvXqRp6hLs9eoJOS
|
7
|
-
Hmi8kRYbq9Vkf15/hMxJpotYMgJVHHWrmDcC5Dye2PbnXjTkKf266Zw0PtT9h+lI
|
8
|
-
S3ts9HO+vaCFSMwFFZmnWJSpQ3CNw2RcHxjWkk9yF7imEM8Kz9ojhiDXzBetdV6M
|
9
|
-
gr0lV/alUr7TNVBDngbXEfTWscyXh1qd7xZ4EcOdsDktCe5G45N/o3662tPQvJsi
|
10
|
-
FOF0CM/KuBsa/HL1/eoEmF4B3EKIRfTHrQ3hu20Kv3RJ88QM4ec2+0dd97uX693O
|
11
|
-
zv6981fyEg+aXLkxrkViM/tz2qR2ZE0jPhHTREPYeMEgptRkTmWSKAuLVWrJEfgl
|
12
|
-
DtkCAwEAAaN3MHUwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFEwe
|
13
|
-
nn6bfJADmuIDiMSOzedOrL+xMB0GA1UdEQQWMBSBEmRqYmVyZzk2QGdtYWlsLmNv
|
14
|
-
bTAdBgNVHRIEFjAUgRJkamJlcmc5NkBnbWFpbC5jb20wDQYJKoZIhvcNAQEFBQAD
|
15
|
-
ggEBAHmNOCWoDVD75zHFueY0viwGDVP1BNGFC+yXcb7u2GlK+nEMCORqzURbYPf7
|
16
|
-
tL+/hzmePIRz7i30UM//64GI1NLv9jl7nIwjhPpXpf7/lu2I9hOTsvwSumb5UiKC
|
17
|
-
/sqBxI3sfj9pr79Wpv4MuikX1XPik7Ncb7NPsJPw06Lvyc3Hkg5X2XpPtLtS+Gr2
|
18
|
-
wKJnmzb5rIPS1cmsqv0M9LPWflzfwoZ/SpnmhagP+g05p8bRNKjZSA2iImM/GyYZ
|
19
|
-
EJYzxdPOrx2n6NYR3Hk+vHP0U7UBSveI6+qx+ndQYaeyCn+GRX2PKS9h66YF/Q1V
|
20
|
-
tGSHgAmcLlkdGgan182qsE/4kKM=
|
21
|
-
-----END CERTIFICATE-----
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIDcDCCAligAwIBAgIBATANBgkqhkiG9w0BAQUFADA/MREwDwYDVQQDDAhkamJl
|
3
|
+
cmc5NjEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQBGRYDY29t
|
4
|
+
MB4XDTE1MDkwMjIwNDkxOFoXDTE2MDkwMTIwNDkxOFowPzERMA8GA1UEAwwIZGpi
|
5
|
+
ZXJnOTYxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkWA2Nv
|
6
|
+
bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMyTkvXqRp6hLs9eoJOS
|
7
|
+
Hmi8kRYbq9Vkf15/hMxJpotYMgJVHHWrmDcC5Dye2PbnXjTkKf266Zw0PtT9h+lI
|
8
|
+
S3ts9HO+vaCFSMwFFZmnWJSpQ3CNw2RcHxjWkk9yF7imEM8Kz9ojhiDXzBetdV6M
|
9
|
+
gr0lV/alUr7TNVBDngbXEfTWscyXh1qd7xZ4EcOdsDktCe5G45N/o3662tPQvJsi
|
10
|
+
FOF0CM/KuBsa/HL1/eoEmF4B3EKIRfTHrQ3hu20Kv3RJ88QM4ec2+0dd97uX693O
|
11
|
+
zv6981fyEg+aXLkxrkViM/tz2qR2ZE0jPhHTREPYeMEgptRkTmWSKAuLVWrJEfgl
|
12
|
+
DtkCAwEAAaN3MHUwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFEwe
|
13
|
+
nn6bfJADmuIDiMSOzedOrL+xMB0GA1UdEQQWMBSBEmRqYmVyZzk2QGdtYWlsLmNv
|
14
|
+
bTAdBgNVHRIEFjAUgRJkamJlcmc5NkBnbWFpbC5jb20wDQYJKoZIhvcNAQEFBQAD
|
15
|
+
ggEBAHmNOCWoDVD75zHFueY0viwGDVP1BNGFC+yXcb7u2GlK+nEMCORqzURbYPf7
|
16
|
+
tL+/hzmePIRz7i30UM//64GI1NLv9jl7nIwjhPpXpf7/lu2I9hOTsvwSumb5UiKC
|
17
|
+
/sqBxI3sfj9pr79Wpv4MuikX1XPik7Ncb7NPsJPw06Lvyc3Hkg5X2XpPtLtS+Gr2
|
18
|
+
wKJnmzb5rIPS1cmsqv0M9LPWflzfwoZ/SpnmhagP+g05p8bRNKjZSA2iImM/GyYZ
|
19
|
+
EJYzxdPOrx2n6NYR3Hk+vHP0U7UBSveI6+qx+ndQYaeyCn+GRX2PKS9h66YF/Q1V
|
20
|
+
tGSHgAmcLlkdGgan182qsE/4kKM=
|
21
|
+
-----END CERTIFICATE-----
|
data/lib/win32/security.rb
CHANGED
@@ -4,6 +4,7 @@
|
|
4
4
|
require_relative 'security/windows/constants'
|
5
5
|
require_relative 'security/windows/structs'
|
6
6
|
require_relative 'security/windows/functions'
|
7
|
+
require_relative 'security/windows/helper'
|
7
8
|
|
8
9
|
# The Win32 module serves as a namespace only.
|
9
10
|
module Win32
|
@@ -20,7 +21,7 @@ module Win32
|
|
20
21
|
extend Windows::Security::Functions
|
21
22
|
|
22
23
|
# The version of the win32-security library
|
23
|
-
VERSION = '0.
|
24
|
+
VERSION = '0.4.0'
|
24
25
|
|
25
26
|
# Used by OpenProcessToken
|
26
27
|
TOKEN_QUERY = 8
|
data/lib/win32/security/sid.rb
CHANGED
@@ -227,11 +227,11 @@ module Win32
|
|
227
227
|
|
228
228
|
ordinal_val = account ? account[0].ord : nil
|
229
229
|
|
230
|
-
sid = FFI::MemoryPointer.new(:uchar,
|
230
|
+
sid = FFI::MemoryPointer.new(:uchar, 1024)
|
231
231
|
sid_size = FFI::MemoryPointer.new(:ulong)
|
232
232
|
sid_size.write_ulong(sid.size)
|
233
233
|
|
234
|
-
domain = FFI::MemoryPointer.new(:uchar,
|
234
|
+
domain = FFI::MemoryPointer.new(:uchar, 1024)
|
235
235
|
domain_size = FFI::MemoryPointer.new(:ulong)
|
236
236
|
domain_size.write_ulong(domain.size)
|
237
237
|
|
@@ -254,7 +254,7 @@ module Win32
|
|
254
254
|
account_ptr = FFI::MemoryPointer.from_string(account)
|
255
255
|
|
256
256
|
bool = LookupAccountSid(
|
257
|
-
host,
|
257
|
+
host.encode('UTF-16LE'),
|
258
258
|
account_ptr,
|
259
259
|
sid,
|
260
260
|
sid_size,
|
@@ -270,8 +270,8 @@ module Win32
|
|
270
270
|
account_ptr.free
|
271
271
|
else
|
272
272
|
bool = LookupAccountName(
|
273
|
-
host,
|
274
|
-
account,
|
273
|
+
host.encode('UTF-16LE'),
|
274
|
+
account.encode('UTF-16LE'),
|
275
275
|
sid,
|
276
276
|
sid_size,
|
277
277
|
domain,
|
@@ -287,18 +287,19 @@ module Win32
|
|
287
287
|
if ordinal_val.nil?
|
288
288
|
length = GetLengthSid(token_info)
|
289
289
|
@sid = token_info.read_string(length)
|
290
|
-
@account = sid.
|
290
|
+
@account = sid.read_bytes(sid.size).wstrip
|
291
291
|
elsif ordinal_val < 10
|
292
292
|
@sid = account
|
293
|
-
@account = sid.
|
293
|
+
@account = sid.read_bytes(sid.size).wstrip
|
294
294
|
else
|
295
295
|
length = GetLengthSid(sid)
|
296
|
-
@sid = sid.
|
296
|
+
@sid = sid.read_bytes(length)
|
297
297
|
@account = account
|
298
298
|
end
|
299
299
|
|
300
|
+
|
300
301
|
@host = host
|
301
|
-
@domain = domain.
|
302
|
+
@domain = domain.read_bytes(domain.size).wstrip
|
302
303
|
|
303
304
|
@account_type = get_account_type(use_ptr.read_ulong)
|
304
305
|
end
|
@@ -101,16 +101,11 @@ module Windows
|
|
101
101
|
attach_pfunc :IsValidAcl, [:ptr], :bool
|
102
102
|
attach_pfunc :IsValidSid, [:ptr], :bool
|
103
103
|
attach_pfunc :IsWellKnownSid, [:ptr, :int], :bool
|
104
|
-
attach_pfunc :LookupAccountName, :
|
105
|
-
attach_pfunc :LookupAccountSid, :
|
104
|
+
attach_pfunc :LookupAccountName, :LookupAccountNameW, [:buffer_in, :buffer_in, :ptr, :ptr, :ptr, :ptr, :ptr], :bool
|
105
|
+
attach_pfunc :LookupAccountSid, :LookupAccountSidW, [:buffer_in, :ptr, :ptr, :ptr, :ptr, :ptr, :ptr], :bool
|
106
106
|
attach_pfunc :OpenProcessToken, [:handle, :dword, :ptr], :bool
|
107
107
|
attach_pfunc :OpenThreadToken, [:handle, :dword, :int, :ptr], :bool
|
108
108
|
attach_pfunc :SetAclInformation, [:ptr, :ptr, :dword, :int], :bool
|
109
|
-
|
110
|
-
attach_pfunc :ConvertSecurityDescriptorToStringSecurityDescriptor,
|
111
|
-
:ConvertSecurityDescriptorToStringSecurityDescriptorA, [:ptr, :dword, :dword, :ptr, :ptr], :bool
|
112
|
-
attach_pfunc :ConvertStringSecurityDescriptorToSecurityDescriptor,
|
113
|
-
:ConvertStringSecurityDescriptorToSecurityDescriptorA, [:string, :dword, :ptr, :ptr], :bool
|
114
109
|
end
|
115
110
|
end
|
116
111
|
end
|
data/test/test_security.rb
CHANGED
@@ -9,7 +9,7 @@ require 'win32/security'
|
|
9
9
|
|
10
10
|
class TC_Win32_Security < Test::Unit::TestCase
|
11
11
|
test "version constant is set to expected value" do
|
12
|
-
assert_equal('0.
|
12
|
+
assert_equal('0.4.0', Win32::Security::VERSION)
|
13
13
|
end
|
14
14
|
|
15
15
|
test "elevated security basic functionality" do
|
data/win32-security.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: win32-security
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel J. Berger
|
@@ -31,7 +31,7 @@ cert_chain:
|
|
31
31
|
EJYzxdPOrx2n6NYR3Hk+vHP0U7UBSveI6+qx+ndQYaeyCn+GRX2PKS9h66YF/Q1V
|
32
32
|
tGSHgAmcLlkdGgan182qsE/4kKM=
|
33
33
|
-----END CERTIFICATE-----
|
34
|
-
date: 2016-03-
|
34
|
+
date: 2016-03-07 00:00:00.000000000 Z
|
35
35
|
dependencies:
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: ffi
|
@@ -114,6 +114,7 @@ files:
|
|
114
114
|
- lib/win32/security/windows
|
115
115
|
- lib/win32/security/windows/constants.rb
|
116
116
|
- lib/win32/security/windows/functions.rb
|
117
|
+
- lib/win32/security/windows/helper.rb
|
117
118
|
- lib/win32/security/windows/structs.rb
|
118
119
|
- lib/win32/security.rb
|
119
120
|
- lib/win32-security.rb
|
metadata.gz.sig
CHANGED
Binary file
|