diff options
Diffstat (limited to 'lib/snmp/src')
-rw-r--r-- | lib/snmp/src/agent/snmpa.erl | 2 | ||||
-rw-r--r-- | lib/snmp/src/app/snmp.erl | 94 | ||||
-rw-r--r-- | lib/snmp/src/compile/snmpc_misc.erl | 5 | ||||
-rw-r--r-- | lib/snmp/src/misc/snmp_conf.erl | 3 | ||||
-rw-r--r-- | lib/snmp/src/misc/snmp_config.erl | 3 | ||||
-rw-r--r-- | lib/snmp/src/misc/snmp_usm.erl | 31 |
6 files changed, 73 insertions, 65 deletions
diff --git a/lib/snmp/src/agent/snmpa.erl b/lib/snmp/src/agent/snmpa.erl index ff7be54283..9e428466fa 100644 --- a/lib/snmp/src/agent/snmpa.erl +++ b/lib/snmp/src/agent/snmpa.erl @@ -123,7 +123,7 @@ mib_storage_options/0 ]). --deprecated([{old_info_format, 1, next_major_release}]). +-deprecated([{old_info_format, 1, "use \"new\" format instead"}]). -include("snmpa_atl.hrl"). diff --git a/lib/snmp/src/app/snmp.erl b/lib/snmp/src/app/snmp.erl index 1e6a93deff..b6cfe34047 100644 --- a/lib/snmp/src/app/snmp.erl +++ b/lib/snmp/src/app/snmp.erl @@ -129,53 +129,53 @@ %% This is for XREF --deprecated([{c, 1, eventually}, - {c, 2, eventually}, - {compile, 3, eventually}, - {is_consistent, 1, eventually}, - {mib_to_hrl, 1, eventually}, - - {change_log_size, 1, eventually}, - {log_to_txt, 2, eventually}, - {log_to_txt, 3, eventually}, - {log_to_txt, 4, eventually}, - - {current_request_id, 0, eventually}, - {current_community, 0, eventually}, - {current_address, 0, eventually}, - {current_context, 0, eventually}, - {current_net_if_data, 0, eventually}, - - {get_symbolic_store_db, 0, eventually}, - {name_to_oid, 1, eventually}, - {name_to_oid, 2, eventually}, - {oid_to_name, 1, eventually}, - {oid_to_name, 2, eventually}, - {int_to_enum, 2, eventually}, - {int_to_enum, 3, eventually}, - {enum_to_int, 2, eventually}, - {enum_to_int, 3, eventually}, - - {get, 2, eventually}, - {info, 1, eventually}, - {load_mibs, 2, eventually}, - {unload_mibs, 2, eventually}, - {dump_mibs, 0, eventually}, - {dump_mibs, 1, eventually}, - - {register_subagent, 3, eventually}, - {unregister_subagent, 2, eventually}, - - {send_notification, 3, eventually}, - {send_notification, 4, eventually}, - {send_notification, 5, eventually}, - {send_notification, 6, eventually}, - {send_trap, 3, eventually}, - {send_trap, 4, eventually}, - - {add_agent_caps, 2, eventually}, - {del_agent_caps, 1, eventually}, - {get_agent_caps, 0, eventually}]). +-deprecated([{c, 1, "use snmpa:c/1 instead"}, + {c, 2, "use snmpa:c/2 instead"}, + {compile, 3, "use snmpa:compile/3 instead"}, + {is_consistent, 1, "use snmpa:is_consistent/1 instead"}, + {mib_to_hrl, 1, "use snmpa:mib_to_hrl/1 instead"}, + + {change_log_size, 1, "use snmpa:change_log_size/1 instead"}, + {log_to_txt, 2, "use snmpa:log_to_txt/2 instead"}, + {log_to_txt, 3, "use snmpa:log_to_txt/3 instead"}, + {log_to_txt, 4, "use snmpa:log_to_txt/4 instead"}, + + {current_request_id, 0, "use snmpa:current_request_id/0 instead"}, + {current_community, 0, "use snmpa:current_community/0 instead"}, + {current_address, 0, "use snmpa:current_address/0 instead"}, + {current_context, 0, "use snmpa:current_context/0 instead"}, + {current_net_if_data, 0, "use snmpa:current_net_if_data/0 instead"}, + + {get_symbolic_store_db, 0, "use snmpa:get_symbolic_store_db/0 instead"}, + {name_to_oid, 1, "use snmpa:name_to_oid/1 instead"}, + {name_to_oid, 2, "use snmpa:name_to_oid/2 instead"}, + {oid_to_name, 1, "use snmpa:oid_to_name/1 instead"}, + {oid_to_name, 2, "use snmpa:oid_to_name/2 instead"}, + {int_to_enum, 2, "use snmpa:int_to_enum/2 instead"}, + {int_to_enum, 3, "use snmpa:int_to_enum/3 instead"}, + {enum_to_int, 2, "use snmpa:enum_to_int/2 instead"}, + {enum_to_int, 3, "use snmpa:enum_to_int/3 instead"}, + + {get, 2, "use snmpa:get/2 instead"}, + {info, 1, "use snmpa:info/1 instead"}, + {load_mibs, 2, "use snmpa:load_mibs/2 instead"}, + {unload_mibs, 2, "use snmpa:unload_mibs/2 instead"}, + {dump_mibs, 0, "use snmpa:dump_mibs/0 instead"}, + {dump_mibs, 1, "use snmpa:dump_mibs/1 instead"}, + + {register_subagent, 3, "use snmpa:register_subagent/3 instead"}, + {unregister_subagent, 2, "use snmpa:unregister_subagent/2 instead"}, + + {send_notification, 3, "use snmpa:send_notification/3 instead"}, + {send_notification, 4, "use snmpa:send_notification/4 instead"}, + {send_notification, 5, "use snmpa:send_notification/5 instead"}, + {send_notification, 6, "use snmpa:send_notification/6 instead"}, + {send_trap, 3, "use snmpa:send_trap/3 instead"}, + {send_trap, 4, "use snmpa:send_trap/4 instead"}, + + {add_agent_caps, 2, "use snmpa:add_agent_caps/2 instead"}, + {del_agent_caps, 1, "use snmpa:del_agent_caps/1 instead"}, + {get_agent_caps, 0, "use snmpa:get_agent_caps/0 instead"}]). -define(APPLICATION, snmp). diff --git a/lib/snmp/src/compile/snmpc_misc.erl b/lib/snmp/src/compile/snmpc_misc.erl index 312074f2e7..d0fee418e1 100644 --- a/lib/snmp/src/compile/snmpc_misc.erl +++ b/lib/snmp/src/compile/snmpc_misc.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2003-2016. All Rights Reserved. +%% Copyright Ericsson AB 2003-2019. All Rights Reserved. %% %% Licensed under the Apache License, Version 2.0 (the "License"); %% you may not use this file except in compliance with the License. @@ -156,7 +156,8 @@ loop(Fd, Res, Func, StartLine, File) -> %% io:read modified to give us line numbers. %%----------------------------------------------------------------- read(Io, Prompt, StartLine) -> - case io:request(Io, {get_until, Prompt, erl_scan, tokens, [StartLine]}) of + Enc = latin1, + case io:request(Io, {get_until, Enc, Prompt, erl_scan, tokens, [StartLine]}) of {ok, Toks, EndLine} -> case erl_parse:parse_term(Toks) of {ok, Term} -> diff --git a/lib/snmp/src/misc/snmp_conf.erl b/lib/snmp/src/misc/snmp_conf.erl index 20b7af0373..bec9d4d9d9 100644 --- a/lib/snmp/src/misc/snmp_conf.erl +++ b/lib/snmp/src/misc/snmp_conf.erl @@ -265,7 +265,8 @@ open_file(File) -> end. do_read(Io, Prompt, StartLine) -> - case io:request(Io, {get_until,Prompt,erl_scan,tokens,[StartLine]}) of + Enc = latin1, + case io:request(Io, {get_until,Enc,Prompt,erl_scan,tokens,[StartLine]}) of {ok, Toks, EndLine} -> case erl_parse:parse_term(Toks) of {ok, Term} -> diff --git a/lib/snmp/src/misc/snmp_config.erl b/lib/snmp/src/misc/snmp_config.erl index 3104f2a096..5aab9a74e0 100644 --- a/lib/snmp/src/misc/snmp_config.erl +++ b/lib/snmp/src/misc/snmp_config.erl @@ -2737,7 +2737,8 @@ read_lines(Fd, Acc, StartLine) -> end. read_and_parse_term(Fd, StartLine) -> - case io:request(Fd, {get_until, "", erl_scan, tokens, [StartLine]}) of + Enc = latin1, + case io:request(Fd, {get_until, Enc, "", erl_scan, tokens, [StartLine]}) of {ok, Tokens, EndLine} -> case erl_parse:parse_term(Tokens) of {ok, Term} -> diff --git a/lib/snmp/src/misc/snmp_usm.erl b/lib/snmp/src/misc/snmp_usm.erl index bae6bdec72..39172c9c1a 100644 --- a/lib/snmp/src/misc/snmp_usm.erl +++ b/lib/snmp/src/misc/snmp_usm.erl @@ -45,7 +45,12 @@ -define(i32(Int), (Int bsr 24) band 255, (Int bsr 16) band 255, (Int bsr 8) band 255, Int band 255). --define(BLOCK_CIPHER_AES, aes_cfb128). +-define(BLOCK_CIPHER_AES(Key), case size(iolist_to_binary(Key)) of + 128 -> aes_128_cfb128; + 192 -> aes_192_cfb128; + 256 -> aes_256_cfb128 + end). + -define(BLOCK_CIPHER_DES, des_cbc). @@ -157,7 +162,7 @@ md5_auth_out(AuthKey, Message, UsmSecParams) -> Packet = snmp_pdus:enc_message_only(Message2), %% 6.3.1.2-4 is done by the crypto function %% 6.3.1.4 - MAC = binary_to_list(crypto:hmac(md5, AuthKey, Packet, 12)), + MAC = binary_to_list(crypto:macN(hmac, md5, AuthKey, Packet, 12)), %% ?vtrace("md5_auth_out -> crypto (md5) encoded" %% "~n MAC: ~w", [MAC]), %% 6.3.1.5 @@ -171,7 +176,7 @@ md5_auth_in(AuthKey, AuthParams, Packet) when length(AuthParams) == 12 -> %% 6.3.2.3 Packet2 = patch_packet(binary_to_list(Packet)), %% 6.3.2.5 - MAC = binary_to_list(crypto:hmac(md5, AuthKey, Packet2, 12)), + MAC = binary_to_list(crypto:macN(hmac, md5, AuthKey, Packet2, 12)), %% 6.3.2.6 %% ?vtrace("md5_auth_in -> crypto (md5) encoded" %% "~n MAC: ~w", [MAC]), @@ -190,7 +195,7 @@ sha_auth_out(AuthKey, Message, UsmSecParams) -> Packet = snmp_pdus:enc_message_only(Message2), %% 7.3.1.2-4 is done by the crypto function %% 7.3.1.4 - MAC = binary_to_list(crypto:hmac(sha, AuthKey, Packet, 12)), + MAC = binary_to_list(crypto:macN(hmac, sha, AuthKey, Packet, 12)), %% 7.3.1.5 set_msg_auth_params(Message, UsmSecParams, MAC). @@ -198,7 +203,7 @@ sha_auth_in(AuthKey, AuthParams, Packet) when length(AuthParams) =:= 12 -> %% 7.3.2.3 Packet2 = patch_packet(binary_to_list(Packet)), %% 7.3.2.5 - MAC = binary_to_list(crypto:hmac(sha, AuthKey, Packet2, 12)), + MAC = binary_to_list(crypto:macN(hmac, sha, AuthKey, Packet2, 12)), %% 7.3.2.6 MAC == AuthParams; sha_auth_in(_AuthKey, _AuthParams, _Packet) -> @@ -216,8 +221,8 @@ des_encrypt(PrivKey, Data, SaltFun) -> IV = list_to_binary(snmp_misc:str_xor(PreIV, Salt)), TailLen = (8 - (length(Data) rem 8)) rem 8, Tail = mk_tail(TailLen), - EncData = crypto:block_encrypt(?BLOCK_CIPHER_DES, - DesKey, IV, [Data,Tail]), + EncData = crypto:crypto_one_time(?BLOCK_CIPHER_DES, + DesKey, IV, [Data,Tail], true), {ok, binary_to_list(EncData), Salt}. des_decrypt(PrivKey, MsgPrivParams, EncData) @@ -231,8 +236,8 @@ des_decrypt(PrivKey, MsgPrivParams, EncData) Salt = MsgPrivParams, IV = list_to_binary(snmp_misc:str_xor(PreIV, Salt)), %% Whatabout errors here??? E.g. not a mulitple of 8! - Data = binary_to_list(crypto:block_decrypt(?BLOCK_CIPHER_DES, - DesKey, IV, EncData)), + Data = binary_to_list(crypto:crypto_one_time(?BLOCK_CIPHER_DES, + DesKey, IV, EncData, false)), Data2 = snmp_pdus:strip_encrypted_scoped_pdu_data(Data), {ok, Data2}; des_decrypt(PrivKey, BadMsgPrivParams, EncData) -> @@ -248,8 +253,8 @@ aes_encrypt(PrivKey, Data, SaltFun, EngineBoots, EngineTime) -> AesKey = PrivKey, Salt = SaltFun(), IV = list_to_binary([?i32(EngineBoots), ?i32(EngineTime) | Salt]), - EncData = crypto:block_encrypt(?BLOCK_CIPHER_AES, - AesKey, IV, Data), + EncData = crypto:crypto_one_time(?BLOCK_CIPHER_AES(AesKey), + AesKey, IV, Data, true), {ok, binary_to_list(EncData), Salt}. aes_decrypt(PrivKey, MsgPrivParams, EncData, EngineBoots, EngineTime) @@ -258,8 +263,8 @@ aes_decrypt(PrivKey, MsgPrivParams, EncData, EngineBoots, EngineTime) Salt = MsgPrivParams, IV = list_to_binary([?i32(EngineBoots), ?i32(EngineTime) | Salt]), %% Whatabout errors here??? E.g. not a mulitple of 8! - Data = binary_to_list(crypto:block_decrypt(?BLOCK_CIPHER_AES, - AesKey, IV, EncData)), + Data = binary_to_list(crypto:crypto_one_time(?BLOCK_CIPHER_AES(AesKey), + AesKey, IV, EncData, false)), Data2 = snmp_pdus:strip_encrypted_scoped_pdu_data(Data), {ok, Data2}. |