Method: NETSNMP::SecurityParameters#initialize
- Defined in:
- lib/netsnmp/security_parameters.rb
#initialize(username:, engine_id: "", security_level: nil, auth_protocol: nil, auth_password: nil, priv_protocol: nil, priv_password: nil, **options) ⇒ SecurityParameters
Note:
if security level is set to :no_auth_no_priv, all other parameters are optional; if :auth_no_priv, :auth_protocol will be coerced to :md5 (if not explicitly set), and :auth_password is mandatory; if :auth_priv, the sentence before applies, and :priv_protocol will be coerced to :des (if not explicitly set), and :priv_password becomes mandatory.
Returns a new instance of SecurityParameters.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/netsnmp/security_parameters.rb', line 40 def initialize( username:, engine_id: "", security_level: nil, auth_protocol: nil, auth_password: nil, priv_protocol: nil, priv_password: nil, ** ) @security_level = case security_level when /no_?auth/ then 0 when /auth_?no_?priv/ then 1 when /auth_?priv/ then 3 when Integer then security_level else 3 # rubocop:disable Lint/DuplicateBranch end @username = username @engine_id = engine_id @auth_protocol = auth_protocol.to_sym unless auth_protocol.nil? @priv_protocol = priv_protocol.to_sym unless priv_protocol.nil? if @security_level.positive? @auth_protocol ||= :md5 # this is the default raise "security level requires an auth password" if auth_password.nil? raise "auth password must have between 8 to 32 characters" unless (8..32).cover?(auth_password.length) end if @security_level > 1 @priv_protocol ||= :des raise "security level requires a priv password" if priv_password.nil? raise "priv password must have between 8 to 32 characters" unless (8..32).cover?(priv_password.length) end @auth_pass_key = passkey(auth_password) if auth_password @priv_pass_key = passkey(priv_password) if priv_password initialize_logger(**) end |