summaryrefslogtreecommitdiff
path: root/lib/snmp/src
diff options
context:
space:
mode:
Diffstat (limited to 'lib/snmp/src')
-rw-r--r--lib/snmp/src/agent/snmpa.erl2
-rw-r--r--lib/snmp/src/app/snmp.erl94
-rw-r--r--lib/snmp/src/compile/snmpc_misc.erl5
-rw-r--r--lib/snmp/src/misc/snmp_conf.erl3
-rw-r--r--lib/snmp/src/misc/snmp_config.erl3
-rw-r--r--lib/snmp/src/misc/snmp_usm.erl31
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}.