netsnmp 0.6.0 → 0.6.3

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/sig/pdu.rbs CHANGED
@@ -3,43 +3,42 @@ module NETSNMP
3
3
 
4
4
  class PDU
5
5
 
6
- # type pdu_options = {
7
- # headers: [snmp_version?, String?],
8
- # ?request_id: String,
9
- # ?error_status: Integer,
10
- # ?error_index: Integer,
11
- # ?varbinds: Array[varbind_options]
12
- # }
6
+ MAXREQUESTID: Integer
13
7
 
14
8
  attr_reader varbinds: Array[Varbind]
15
9
  attr_reader type: Integer
16
- attr_reader version: snmp_version
17
- attr_reader community: String
10
+ attr_reader version: Integer
11
+ attr_reader community: String?
18
12
  attr_reader request_id: Integer
19
13
 
20
- def self.decode: (String der) -> PDU
21
- | (OpenSSL::ASN1::ASN1Data der) -> PDU
14
+ @error_index: Integer
15
+ @error_status: Integer
22
16
 
23
- def self.build: (pdu_type, **untyped) -> PDU
17
+ def self.decode: (String | OpenSSL::ASN1::ASN1Data der, **untyped vars) -> instance
18
+
19
+ def self.build: (pdu_type, **untyped) -> instance
24
20
 
25
21
 
26
22
  def to_asn: () -> OpenSSL::ASN1::ASN1Data
27
23
 
28
24
  def to_der: () -> String
29
25
 
30
- def add_varbind: (oid: oid, **varbind_options) -> void
26
+ def to_hex: () -> String
27
+
28
+ def add_varbind: (oid: String, **untyped varbind_options) -> void
31
29
  alias << add_varbind
32
30
 
33
31
  private
34
32
 
35
33
  def initialize: (
36
34
  type: Integer,
37
- headers: [snmp_version?, String?],
35
+ version: Integer,
36
+ community: String?,
38
37
  ?request_id: Integer,
39
38
  ?error_status: Integer,
40
39
  ?error_index: Integer,
41
40
  ?varbinds: Array[varbind_options]
42
- ) -> untyped
41
+ ) -> void
43
42
 
44
43
  def encode_headers_asn: () -> [OpenSSL::ASN1::Integer, OpenSSL::ASN1::OctetString]
45
44
 
data/sig/scoped_pdu.rbs CHANGED
@@ -1,14 +1,19 @@
1
1
  module NETSNMP
2
2
  class ScopedPDU < PDU
3
- attr_reader engine_id: String
4
- attr_reader auth_param: String?
5
- attr_reader security_level: Integer?
3
+ attr_reader engine_id: String?
4
+ attr_reader auth_param: String
5
+ attr_reader security_level: Integer
6
+
7
+ @context: String?
6
8
 
7
9
  private
8
10
 
9
11
  def initialize: (
10
12
  type: Integer,
11
- headers: [String?, String?],
13
+ ?auth_param: String,
14
+ ?security_level: Integer,
15
+ ?engine_id: String,
16
+ ?context: String,
12
17
  **untyped
13
18
  ) -> void
14
19
 
@@ -1,29 +1,30 @@
1
1
  module NETSNMP
2
2
  class SecurityParameters
3
- prepend Loggable
3
+ include Loggable
4
4
 
5
- type security_level = :noauth | :auth_no_priv | :auth_priv | 0 | 1 | 3 | nil
5
+ type security_level = 0 | 1 | 3
6
6
 
7
- type auth_protocol = :md5 | :sha | :sha256
8
- type priv_protocol = :des | :aes
7
+ IPAD: String
8
+ OPAD: String
9
+ TIMELINESS_THRESHOLD: Integer
9
10
 
11
+ @auth_pass_key: String
12
+ @priv_pass_key: String
13
+ @priv_protocol: Symbol?
14
+ @digest: OpenSSL::Digest
15
+ @encryption: (Encryption::AES | Encryption::DES)?
16
+ @timeliness: Integer
10
17
 
11
- @auth_password: String?
12
- @priv_protocol: priv_protocol?
13
- @priv_password: String?
14
- @digest: _Authenticate?
15
- @encryption: _Encrypt?
16
-
17
- attr_reader security_level: security_level
18
+ attr_reader security_level: Integer
18
19
  attr_reader username: String
19
20
  attr_reader engine_id: String
20
- attr_reader auth_protocol: auth_protocol?
21
+ attr_reader auth_protocol: Symbol?
21
22
 
22
23
  def engine_id=: (String id) -> void
23
24
 
24
- def encode: (_ToAsn, salt: OpenSSL::ASN1::ASN1Data, engine_time: Integer, engine_boots: Integer) -> [OpenSSL::ASN1::ASN1Data, OpenSSL::ASN1::ASN1Data]
25
+ def encode: (PDU pdu, salt: OpenSSL::ASN1::ASN1Data, engine_time: Integer, engine_boots: Integer) -> [OpenSSL::ASN1::ASN1Data, OpenSSL::ASN1::ASN1Data]
25
26
 
26
- def decode: (OpenSSL::ASN1::ASN1Data | String der, salt: OpenSSL::ASN1::ASN1Data | String, engine_time: Integer, engine_boots: Integer, ?security_level: Integer?) -> OpenSSL::ASN1::ASN1Data
27
+ def decode: (OpenSSL::ASN1::ASN1Data | String der, salt: String, engine_time: Integer, engine_boots: Integer, ?security_level: Integer) -> OpenSSL::ASN1::ASN1Data
27
28
 
28
29
  def sign: (String message) -> String?
29
30
 
@@ -36,23 +37,28 @@ module NETSNMP
36
37
  def initialize: (
37
38
  username: String,
38
39
  ?engine_id: String,
39
- ?security_level: security_level?,
40
- ?auth_protocol: auth_protocol?,
41
- ?auth_password: String?,
42
- ?priv_protocol: priv_protocol?,
43
- ?priv_password: String?,
44
- ) -> untyped
45
-
40
+ ?security_level: Integer | :noauth | :auth_no_priv | :auth_priv | nil,
41
+ ?auth_protocol: Symbol | nil,
42
+ ?auth_password: String | nil,
43
+ ?priv_protocol: Symbol | nil,
44
+ ?priv_password: String | nil,
45
+ **untyped options
46
+ ) -> void
47
+
48
+ @auth_key: String
46
49
  def auth_key: () -> String
47
50
 
51
+ @priv_key: String
48
52
  def priv_key: () -> String
49
53
 
50
- def check_parameters: () -> void
51
-
52
54
  def localize_key: (String key) -> String
53
55
 
54
56
  def passkey: (String password) -> String
55
57
 
58
+ def digest: () -> OpenSSL::Digest
59
+
60
+ def encryption: () -> (Encryption::AES | Encryption::DES)?
61
+
56
62
  def authorizable?: () -> bool
57
63
  end
58
64
  end
data/sig/session.rbs CHANGED
@@ -1,8 +1,11 @@
1
1
  module NETSNMP
2
2
  class Session
3
- prepend Loggable
3
+ include Loggable
4
+
5
+ TIMEOUT: Integer
4
6
 
5
7
  @transport: _Transport
8
+ @proxy: bool?
6
9
  @version: 0 | 1 | 3
7
10
  @community: String?
8
11
 
@@ -15,18 +18,30 @@ module NETSNMP
15
18
  private
16
19
 
17
20
  def initialize: (?version: snmp_version, ?community: String, **untyped) -> untyped
18
-
21
+
19
22
  def validate: (?host: String?, ?port: Integer, ?proxy: _Transport, ?timeout: Integer, **untyped) -> void
20
23
 
21
24
  class Transport
22
- def initialize: (String host, Integer port, timeout: Integer) -> untyped
25
+ MAXPDUSIZE: Integer
26
+
27
+ @socket: UDPSocket
28
+ @destaddr: String
29
+ @timeout: Integer
30
+
23
31
  def close: () -> void
24
- def send: (String payload) -> String
25
- def write: (String) -> void
26
- def recv: () -> void
32
+
33
+ def send: (String pdu_der) -> String
34
+
35
+ def write: (String data) -> void
36
+
37
+ def recv: (?Integer size) -> String
27
38
 
28
39
  private
29
40
 
41
+ def initialize: (String host, Integer port, timeout: Integer) -> void
42
+
43
+ def perform_io: [U] { () -> U } -> U
44
+
30
45
  def wait: (:wait_readable | :wait_writable) -> void
31
46
  end
32
47
  end
data/sig/timeticks.rbs CHANGED
@@ -2,6 +2,25 @@ module NETSNMP
2
2
  class Timetick < Numeric
3
3
  @ticks: Integer
4
4
 
5
+ def to_i: () -> Integer
6
+
5
7
  def to_asn: () -> OpenSSL::ASN1::ASN1Data
8
+
9
+ def coerce: (Integer ticks) -> [instance, instance]
10
+
11
+ def <=>: (_ToI other) -> Integer?
12
+ def +: (_ToI other) -> instance
13
+ def -: (_ToI other) -> instance
14
+ def *: (_ToI other) -> instance
15
+ def /: (_ToI other) -> instance
16
+
17
+ private
18
+
19
+ def initialize: (Integer ticks) -> untyped
20
+
21
+ def days_since: () -> Rational
22
+ def hours_since: (Rational days) -> Rational
23
+ def minutes_since: (Rational hours) -> Rational
24
+ def milliseconds_since: (Rational minutes) -> Rational
6
25
  end
7
26
  end
data/sig/v3_session.rbs CHANGED
@@ -3,11 +3,12 @@ module NETSNMP
3
3
 
4
4
  def build_pdu: (pdu_type, *untyped) -> ScopedPDU
5
5
 
6
- def send: (ScopedPDU pdu) -> ScopedPDU
7
- | (ScopedPDU pdu) -> [PDU, String, Integer, Integer]
6
+ def send: (ScopedPDU pdu) -> (PDU | [PDU, String, Integer, Integer])
8
7
 
9
8
  private
10
9
 
10
+ def validate: (**untyped options) -> void
11
+
11
12
  def encode: (ScopedPDU) -> String
12
13
 
13
14
  def initialize: (?context: String, **untyped) -> untyped
data/sig/varbind.rbs CHANGED
@@ -1,5 +1,6 @@
1
1
  module NETSNMP
2
- type varbind_options = untyped
2
+ type varbind_options = {oid: String, value: Varbind::varbind_value }
3
+ | {oid: String, value: Varbind::varbind_value, type: oid_type}
3
4
 
4
5
  class Varbind
5
6
 
@@ -8,6 +9,8 @@ module NETSNMP
8
9
  attr_reader oid: String
9
10
  attr_reader value: oid_value
10
11
 
12
+ @type: oid_type?
13
+
11
14
  def to_asn: () -> OpenSSL::ASN1::Sequence
12
15
 
13
16
  def to_der: () -> String
@@ -15,7 +18,15 @@ module NETSNMP
15
18
  def convert_val: (varbind_value) -> oid_value
16
19
 
17
20
 
18
- def convert_to_asn: (oid_type, oid_value) -> OpenSSL::ASN1::ASN1Data
21
+ def convert_to_asn: (:ip_address, Integer) -> OpenSSL::ASN1::ASN1Data
22
+ | (:counter32, Integer) -> OpenSSL::ASN1::ASN1Data
23
+ | (:counter64, Integer) -> OpenSSL::ASN1::ASN1Data
24
+ | (:uinteger, Integer) -> OpenSSL::ASN1::ASN1Data
25
+ | (:gauge, Integer) -> OpenSSL::ASN1::ASN1Data
26
+ | (:timetick, Integer) -> OpenSSL::ASN1::ASN1Data
27
+ | (:opaque, Integer) -> OpenSSL::ASN1::ASN1Data
28
+ | (:nsap, Integer) -> OpenSSL::ASN1::ASN1Data
29
+ | (oid_type, oid_value) -> OpenSSL::ASN1::ASN1Data
19
30
 
20
31
  def convert_application_asn: (OpenSSL::ASN1::ASN1Data asn) -> oid_value
21
32
 
data/spec/client_spec.rb CHANGED
@@ -56,14 +56,14 @@ RSpec.describe NETSNMP::Client do
56
56
  let(:next_result) { "San Francisco, California, United States" }
57
57
  let(:walk_result) do
58
58
  {
59
- "1.3.6.1.2.1.1.1.0" => "Linux zeus 4.8.6.5-smp #2 SMP Sun Nov 13 14:58:11 CDT 2016 i686",
60
- "1.3.6.1.2.1.1.2.0" => "1.3.6.1.4.1.8072.3.2.10",
61
- "1.3.6.1.2.1.1.3.0" => /Timeticks: \(\d+\) \d+ days, \d+:\d+:\d+\.\d+/,
62
- "1.3.6.1.2.1.1.4.0" => "SNMP Laboratories, info@snmplabs.com",
63
- "1.3.6.1.2.1.1.5.0" => "zeus.snmplabs.com (you can change this!)",
64
- "1.3.6.1.2.1.1.6.0" => "San Francisco, California, United States",
65
- "1.3.6.1.2.1.1.7.0" => "72",
66
- "1.3.6.1.2.1.1.8.0" => /Timeticks: \(\d+\) \d+ days, \d+:\d+:\d+\.\d+/
59
+ "1.3.6.1.2.1.1.1.0" => "Linux zeus 4.8.6.5-smp #2 SMP Sun Nov 13 14:58:11 CDT 2016 i686",
60
+ "1.3.6.1.2.1.1.2.0" => "1.3.6.1.4.1.8072.3.2.10",
61
+ "1.3.6.1.2.1.1.3.0" => /Timeticks: \(\d+\) \d+ days, \d+:\d+:\d+\.\d+/,
62
+ "1.3.6.1.2.1.1.4.0" => "SNMP Laboratories, info@snmplabs.com",
63
+ "1.3.6.1.2.1.1.5.0" => "zeus.snmplabs.com (you can change this!)",
64
+ "1.3.6.1.2.1.1.6.0" => "San Francisco, California, United States",
65
+ "1.3.6.1.2.1.1.7.0" => "72",
66
+ "1.3.6.1.2.1.1.8.0" => /Timeticks: \(\d+\) \d+ days, \d+:\d+:\d+\.\d+/
67
67
  }
68
68
  end
69
69
  let(:set_oid_result) { 43 }
data/spec/pdu_spec.rb CHANGED
@@ -11,7 +11,8 @@ RSpec.describe NETSNMP::PDU do
11
11
 
12
12
  describe "#to_der" do
13
13
  let(:pdu_get) do
14
- described_class.build(:get, headers: [0, "public"],
14
+ described_class.build(:get, version: 0,
15
+ community: "public",
15
16
  request_id: 16170)
16
17
  end
17
18
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: netsnmp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tiago Cardoso
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-07-22 00:00:00.000000000 Z
11
+ date: 2022-04-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parslet
@@ -56,13 +56,16 @@ files:
56
56
  - lib/netsnmp/varbind.rb
57
57
  - lib/netsnmp/version.rb
58
58
  - sig/client.rbs
59
+ - sig/encryption/aes.rbs
60
+ - sig/encryption/des.rbs
61
+ - sig/errors.rbs
62
+ - sig/extensions.rbs
59
63
  - sig/loggable.rbs
60
64
  - sig/message.rbs
61
65
  - sig/mib.rbs
62
66
  - sig/mib/parser.rbs
63
67
  - sig/netsnmp.rbs
64
68
  - sig/oid.rbs
65
- - sig/openssl.rbs
66
69
  - sig/pdu.rbs
67
70
  - sig/scoped_pdu.rbs
68
71
  - sig/security_parameters.rbs
@@ -88,6 +91,7 @@ licenses:
88
91
  - Apache-2.0
89
92
  metadata:
90
93
  allowed_push_host: https://rubygems.org/
94
+ rubygems_mfa_required: 'true'
91
95
  post_install_message:
92
96
  rdoc_options: []
93
97
  require_paths:
@@ -104,7 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
104
108
  version: '0'
105
109
  requirements:
106
110
  - net-snmp
107
- rubygems_version: 3.2.15
111
+ rubygems_version: 3.2.32
108
112
  signing_key:
109
113
  specification_version: 4
110
114
  summary: SNMP Client library
data/sig/openssl.rbs DELETED
@@ -1,20 +0,0 @@
1
- module OpenSSL
2
- module ASN1
3
- class ASN1Data
4
- end
5
- class ObjectId < ASN1Data
6
- end
7
- class Primitive < ASN1Data
8
- end
9
- class Integer < ASN1Data
10
- end
11
- class OctetString < ASN1Data
12
- end
13
- class Sequence < ASN1Data
14
- end
15
- end
16
- end
17
-
18
- interface _ToAsn
19
- def to_asn: () -> OpenSSL::ASN1::ASN1Data
20
- end