windows_error 0.1.5 → 0.1.6

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
  SHA256:
3
- metadata.gz: 37e364f4623b1af47ff8280b2f2dcd6c025b92860fa7661cfd8a6e7f5e5a1704
4
- data.tar.gz: 697e8d708b14d497cb3d94f666abbd2f78631a2ad3462feceeb80c1abb73f53e
3
+ metadata.gz: c1d3c04128d9c2ebf7855feb8ff5fddaf4225853da8a999936dedc3ae29403e4
4
+ data.tar.gz: 19c66d7aeec6e9aed8dbc8c780b22e5df985ca71d12de5827710ad7fcf0bd810
5
5
  SHA512:
6
- metadata.gz: f765e1dc23dcec3b505b7780f0e49288d51422163f02a28190d93b8ddab7b5073c474b3a88616c0629b1afdd23e21183dea6f93ea97cf7b6761029bdf5f754bc
7
- data.tar.gz: cc0a06b0ba5575d4c7a068160b32d495116d12efe8dd60285d3c4737bca63a5397bdb60f6609ca1f53670b906d9a87760195d0f89045d7ff701e39074cd2f7b2
6
+ metadata.gz: aae7293ae0618d9a95fbe121143cfd203f4d73d6a36d0d41902610fb93b75bc7802f20333e5f2abb8d35f7c72fe59f3165370353b5424600e25b226e96c6e281
7
+ data.tar.gz: 575c180ae7047495707acf5ecc6084b408b3199cf13679c56a59ffdf92c142474abfcc3ad4b05b04ad8acaa0d48e2b8d08223d851a3e35a36dd3973001400d73
data/cortex.yaml ADDED
@@ -0,0 +1,16 @@
1
+ ---
2
+ info:
3
+ title: Windows Error
4
+ x-cortex-git:
5
+ github:
6
+ alias: r7org
7
+ repository: rapid7/windows_error
8
+ x-cortex-tag: windows-error
9
+ x-cortex-type: service
10
+ x-cortex-domain-parents:
11
+ - tag: metasploit
12
+ x-cortex-groups:
13
+ - exposure:external-ship
14
+ openapi: 3.0.1
15
+ servers:
16
+ - url: "/"
@@ -36,10 +36,19 @@ module WindowsError
36
36
 
37
37
  self.constants.sort.each do |constant_name|
38
38
  facility_code = self.const_get(constant_name)
39
+ next unless facility_code.kind_of?(FacilityCode)
40
+
39
41
  if facility_code.value == retval
40
42
  return facility_code
41
43
  end
42
44
  end
45
+ nil
46
+ end
47
+
48
+ def self.find_by_h_result(retval)
49
+ raise ArgumentError, "Invalid value!" unless retval.kind_of? Integer
50
+
51
+ self.find_by_code((retval >> 16) & 0x1fff)
43
52
  end
44
53
 
45
54
  # (0x0000) The default facility code.
@@ -5,16 +5,23 @@ module WindowsError
5
5
  # for more details on this particular set of error codes.
6
6
  module HResult
7
7
 
8
+ require 'windows_error'
8
9
  require 'windows_error/h_result/facility'
10
+ require 'windows_error/win32'
9
11
 
10
12
  # Returns all the {HResultCode} objects that match
11
13
  # the return value supplied.
12
14
  #
13
15
  # @param [Integer] retval the return value you want the error code for
14
16
  # @raise [ArgumentError] if something other than a Integer is supplied
15
- # @return [Array<HResultCode>] all Win32 ErrorCodes that matched
17
+ # @return [Array<WindowsError::ErrorCode>] all ErrorCodes that matched
16
18
  def self.find_by_retval(retval)
17
19
  raise ArgumentError, "Invalid value!" unless retval.kind_of? Integer
20
+
21
+ if Facility.find_by_h_result(retval) == Facility::FACILITY_WIN32.value
22
+ return Win32.find_by_retval(retval & 0xffff)
23
+ end
24
+
18
25
  error_codes = []
19
26
  self.constants.sort.each do |constant_name|
20
27
  error_code = self.const_get(constant_name)
@@ -5,6 +5,8 @@ module WindowsError
5
5
  # more details on this particular set of error codes.
6
6
  module NTStatus
7
7
 
8
+ require 'windows_error'
9
+
8
10
  # Returns all the {WindowsError::ErrorCode} objects that match
9
11
  # the return value supplied.
10
12
  #
@@ -1,3 +1,3 @@
1
1
  module WindowsError
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.6"
3
3
  end
@@ -5,6 +5,8 @@ module WindowsError
5
5
  # more details on this particular set of error codes.
6
6
  module Win32
7
7
 
8
+ require 'windows_error'
9
+
8
10
  # Returns all the {WindowsError::ErrorCode} objects that match
9
11
  # the return value supplied.
10
12
  #
@@ -0,0 +1,35 @@
1
+ require 'spec_helper'
2
+ require 'windows_error/h_result/facility'
3
+
4
+ describe WindowsError::HResult::Facility do
5
+
6
+ describe '#find_by_code' do
7
+
8
+ it 'raises an argument error when passed an invalid value' do
9
+ expect { WindowsError::HResult::Facility.find_by_code('foo') }.to raise_error ArgumentError, 'Invalid value!'
10
+ end
11
+
12
+ it 'returns the facility code for the supplied value' do
13
+ expect(WindowsError::HResult::Facility.find_by_code(0x0007)).to eq WindowsError::HResult::Facility::FACILITY_WIN32
14
+ end
15
+
16
+ it 'returns nil if there is no matching facility code' do
17
+ expect(WindowsError::HResult::Facility.find_by_code(0x0fff)).to be_nil
18
+ end
19
+ end
20
+
21
+ describe '#find_by_h_result' do
22
+
23
+ it 'raises an argument error when passed an invalid value' do
24
+ expect { WindowsError::HResult::Facility.find_by_h_result('foo') }.to raise_error ArgumentError, 'Invalid value!'
25
+ end
26
+
27
+ it 'returns the facility code embedded in an HRESULT' do
28
+ expect(WindowsError::HResult::Facility.find_by_h_result(0x80070547)).to eq WindowsError::HResult::Facility::FACILITY_WIN32
29
+ end
30
+
31
+ it 'returns nil if there is no matching facility code' do
32
+ expect(WindowsError::HResult::Facility.find_by_h_result(0x8fff0547)).to be_nil
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+ require 'windows_error/h_result'
3
+
4
+ describe WindowsError::HResult do
5
+
6
+ describe '#find_by_retval' do
7
+
8
+ it 'raises an argument error when passed an invalid value' do
9
+ expect { WindowsError::HResult.find_by_retval('foo') }.to raise_error ArgumentError, 'Invalid value!'
10
+ end
11
+
12
+ it 'maps FACILITY_WIN32 HRESULTs to Win32 error codes' do
13
+ expect(WindowsError::HResult.find_by_retval(0x80070547)).to match_array([WindowsError::Win32::ERROR_CANT_ACCESS_DOMAIN_INFO])
14
+ end
15
+
16
+ it 'returns HRESULT error codes for non-Win32 facilities' do
17
+ expect(WindowsError::HResult.find_by_retval(0x800401f3)).to match_array([WindowsError::HResult::CO_E_CLASSSTRING])
18
+ end
19
+
20
+ it 'returns an empty array if there is no match' do
21
+ expect(WindowsError::HResult.find_by_retval(0xffffffff)).to match_array([])
22
+ end
23
+ end
24
+ end
metadata CHANGED
@@ -1,99 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: windows_error
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Maloney
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
- cert_chain:
11
- - |
12
- -----BEGIN CERTIFICATE-----
13
- MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl
14
- MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
15
- d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
16
- b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG
17
- EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
18
- cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi
19
- MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c
20
- JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP
21
- mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+
22
- wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4
23
- VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/
24
- AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB
25
- AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
26
- BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun
27
- pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC
28
- dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf
29
- fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm
30
- NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx
31
- H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
32
- +o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
33
- -----END CERTIFICATE-----
34
- - |
35
- -----BEGIN CERTIFICATE-----
36
- MIIFMDCCBBigAwIBAgIQBAkYG1/Vu2Z1U0O1b5VQCDANBgkqhkiG9w0BAQsFADBl
37
- MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
38
- d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
39
- b3QgQ0EwHhcNMTMxMDIyMTIwMDAwWhcNMjgxMDIyMTIwMDAwWjByMQswCQYDVQQG
40
- EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
41
- cnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQgSUQgQ29kZSBT
42
- aWduaW5nIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+NOzHH8O
43
- Ea9ndwfTCzFJGc/Q+0WZsTrbRPV/5aid2zLXcep2nQUut4/6kkPApfmJ1DcZ17aq
44
- 8JyGpdglrA55KDp+6dFn08b7KSfH03sjlOSRI5aQd4L5oYQjZhJUM1B0sSgmuyRp
45
- wsJS8hRniolF1C2ho+mILCCVrhxKhwjfDPXiTWAYvqrEsq5wMWYzcT6scKKrzn/p
46
- fMuSoeU7MRzP6vIK5Fe7SrXpdOYr/mzLfnQ5Ng2Q7+S1TqSp6moKq4TzrGdOtcT3
47
- jNEgJSPrCGQ+UpbB8g8S9MWOD8Gi6CxR93O8vYWxYoNzQYIH5DiLanMg0A9kczye
48
- n6Yzqf0Z3yWT0QIDAQABo4IBzTCCAckwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNV
49
- HQ8BAf8EBAMCAYYwEwYDVR0lBAwwCgYIKwYBBQUHAwMweQYIKwYBBQUHAQEEbTBr
50
- MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYBBQUH
51
- MAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJ
52
- RFJvb3RDQS5jcnQwgYEGA1UdHwR6MHgwOqA4oDaGNGh0dHA6Ly9jcmw0LmRpZ2lj
53
- ZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwOqA4oDaGNGh0dHA6
54
- Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmww
55
- TwYDVR0gBEgwRjA4BgpghkgBhv1sAAIEMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v
56
- d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCgYIYIZIAYb9bAMwHQYDVR0OBBYEFFrEuXsq
57
- CqOl6nEDwGD5LfZldQ5YMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6enIZ3zbcgP
58
- MA0GCSqGSIb3DQEBCwUAA4IBAQA+7A1aJLPzItEVyCx8JSl2qB1dHC06GsTvMGHX
59
- fgtg/cM9D8Svi/3vKt8gVTew4fbRknUPUbRupY5a4l4kgU4QpO4/cY5jDhNLrddf
60
- RHnzNhQGivecRk5c/5CxGwcOkRX7uq+1UcKNJK4kxscnKqEpKBo6cSgCPC6Ro8Al
61
- EeKcFEehemhor5unXCBc2XGxDI+7qPjFEmifz0DLQESlE/DmZAwlCEIysjaKJAL+
62
- L3J+HNdJRZboWR3p+nRka7LrZkPas7CM1ekN3fYBIM6ZMWM9CBoYs4GbT8aTEAb8
63
- B4H6i9r5gkn3Ym6hU/oSlBiFLpKR6mhsRDKyZqHnGKSaZFHv
64
- -----END CERTIFICATE-----
65
- - |
66
- -----BEGIN CERTIFICATE-----
67
- MIIFIzCCBAugAwIBAgIQCMePMbkSxvnPeJhYXIfaxzANBgkqhkiG9w0BAQsFADBy
68
- MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
69
- d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQg
70
- SUQgQ29kZSBTaWduaW5nIENBMB4XDTIwMTAwNzAwMDAwMFoXDTIzMTEwNjEyMDAw
71
- MFowYDELMAkGA1UEBhMCVVMxFjAUBgNVBAgTDU1hc3NhY2h1c2V0dHMxDzANBgNV
72
- BAcTBkJvc3RvbjETMBEGA1UEChMKUmFwaWQ3IExMQzETMBEGA1UEAxMKUmFwaWQ3
73
- IExMQzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALNTz4zvAy7h/vQp
74
- 4dr1txXHlABAagkwYYwTMCtHs5PXsJITx/5SAjx5swuaLfze5kPBNF2YImvFlOXY
75
- WaB+0PsOnXnaARsDZU683xFlj8izU6IN6VrAHzDLKFBzruJENrOJD/ikbEtbjO/q
76
- gFbmS9J9v5ohG/pcRSS0t4ZPAwymf8eCp6QsvOKK/Aymp1RhlRaP8N6N5CIpkhz1
77
- 9p968iCE+DjOXVYxcWE+jE/7uB1dbgrXykNBujMSS3GULOvVEY28n6NCmrPlo23g
78
- yRjYVJ2Vy14nBqnxDZ/yRIfWRVjWoT9TsAEbe9gY29oDpSCSs4wSmLQd5zGCpZ9h
79
- r0HDFB8CAwEAAaOCAcUwggHBMB8GA1UdIwQYMBaAFFrEuXsqCqOl6nEDwGD5LfZl
80
- dQ5YMB0GA1UdDgQWBBTLBL7DTwumVEKtdCdpHVYMXOFeDzAOBgNVHQ8BAf8EBAMC
81
- B4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMwdwYDVR0fBHAwbjA1oDOgMYYvaHR0cDov
82
- L2NybDMuZGlnaWNlcnQuY29tL3NoYTItYXNzdXJlZC1jcy1nMS5jcmwwNaAzoDGG
83
- L2h0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9zaGEyLWFzc3VyZWQtY3MtZzEuY3Js
84
- MEwGA1UdIARFMEMwNwYJYIZIAYb9bAMBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v
85
- d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCAYGZ4EMAQQBMIGEBggrBgEFBQcBAQR4MHYw
86
- JAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBOBggrBgEFBQcw
87
- AoZCaHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0U0hBMkFzc3Vy
88
- ZWRJRENvZGVTaWduaW5nQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEL
89
- BQADggEBAN+GL5/myPWg7oH4mVrG7/OhXF1MoYQF0ddaNiqaweEHMuKJBQCVZRbL
90
- 37HojoKXXv2yyRJBCeTB+ojrxX+5PdLVZa0ss7toWzJ2A1poPXZ1eZvm5xeFD32z
91
- YQaTmmNWNI3PCDTyJ2PXUc+bDiNNwcZ7yc5o78UNRvp9Jxghya17Q76c9Ov9wvnv
92
- dxxQKWGOQy0m4fBrkyjAyH9Djjn81RbQrqYgPuhd5nD0HjN3VUQLhQbIJrk9TVs0
93
- EknWpNgVhohbot1lfVAMmIhdtOVaRVcQQixWPwprDj/ydB8ryDMDosIMcw+fkoXU
94
- 9GJsSaSRRYQ9UUkVL27b64okU8D48m8=
95
- -----END CERTIFICATE-----
96
- date: 2023-01-19 00:00:00.000000000 Z
10
+ cert_chain: []
11
+ date: 2026-07-09 00:00:00.000000000 Z
97
12
  dependencies:
98
13
  - !ruby/object:Gem::Dependency
99
14
  name: bundler
@@ -172,6 +87,7 @@ files:
172
87
  - LICENSE.txt
173
88
  - README.md
174
89
  - Rakefile
90
+ - cortex.yaml
175
91
  - lib/windows_error.rb
176
92
  - lib/windows_error/error_code.rb
177
93
  - lib/windows_error/h_result.rb
@@ -180,6 +96,8 @@ files:
180
96
  - lib/windows_error/version.rb
181
97
  - lib/windows_error/win32.rb
182
98
  - spec/lib/windows_error/error_code_spec.rb
99
+ - spec/lib/windows_error/h_result/facility_spec.rb
100
+ - spec/lib/windows_error/h_result_spec.rb
183
101
  - spec/lib/windows_error/nt_status_spec.rb
184
102
  - spec/lib/windows_error/win32_spec.rb
185
103
  - spec/spec_helper.rb
@@ -188,7 +106,7 @@ homepage: https://github.com/rapid7/windows_error
188
106
  licenses:
189
107
  - BSD
190
108
  metadata: {}
191
- post_install_message:
109
+ post_install_message:
192
110
  rdoc_options: []
193
111
  require_paths:
194
112
  - lib
@@ -203,12 +121,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
203
121
  - !ruby/object:Gem::Version
204
122
  version: '0'
205
123
  requirements: []
206
- rubygems_version: 3.1.4
207
- signing_key:
124
+ rubygems_version: 3.4.19
125
+ signing_key:
208
126
  specification_version: 4
209
127
  summary: Provides a way to look up Windows NTSTATUS and Win32 Error Codes
210
128
  test_files:
211
129
  - spec/lib/windows_error/error_code_spec.rb
130
+ - spec/lib/windows_error/h_result/facility_spec.rb
131
+ - spec/lib/windows_error/h_result_spec.rb
212
132
  - spec/lib/windows_error/nt_status_spec.rb
213
133
  - spec/lib/windows_error/win32_spec.rb
214
134
  - spec/spec_helper.rb
checksums.yaml.gz.sig DELETED
@@ -1 +0,0 @@
1
- H��75��Ut���_ݖDler��R͝i�uԭR�Aa:U�B<�����~�+�G�.�� ��\z�Ҷ��Ei��V۝\�v�m�NA/��hh����q�C�;c$R�n��kA��扳�*0o�a
data.tar.gz.sig DELETED
@@ -1,2 +0,0 @@
1
- q+��-b<\���|e��nP�'F��{i�fb�E��;��R���~TkUy�N-5
2
- � ���E�����.9���CS��9���q��-��'�7@�q��=�8e��1���y5�{����L�T���JSD�rO��2VK����;S�����@w�ɮ��䞋�ں-!O�ⴛ<�G�4�m�'y"���%qqe[��d��a� i�5����.w��g�x�3��
metadata.gz.sig DELETED
Binary file