netsnmp 0.6.0 → 0.6.3

Sign up to get free protection for your applications and to get access to all the features.
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