@@ -273,22 +273,22 @@ do_verify(Pkt, _Response, TS = #tsig_state{ alg = {_Alg,AlgSize} }, TSigRR) ->
273273 andalso
274274 MACSize =< AlgSize ,
275275 MACValid orelse throw (formerr ),
276- PktS = iolist_to_binary ([
277- <<(TS # tsig_state .id ):16 >>,
278- binary :part (Pkt , {2 ,8 }),
279- begin
280- <<ARC :16 >> = binary :part (Pkt , {10 ,2 }),
281- <<(ARC - 1 ):16 >>
276+ MACCalc =
277+ if
278+ element (1 , TS # tsig_state .mac ) == ? MODULE ->
279+ PktS =
280+ iolist_to_binary (
281+ [binary_part (Pkt , 0 , 10 ),
282+ begin
283+ <<ARC :16 >> = binary_part (Pkt , 10 , 2 ),
284+ <<(ARC - 1 ):16 >>
285+ end ,
286+ binary_part (Pkt , 12 , Offset - 12 )]),
287+ mac (PktS , TS , Error , NowSigned , OtherData );
288+ % % RFC8945, section 5.3.1: TSIG on TCP Connections
289+ true ->
290+ mac (TS , Error , NowSigned , OtherData )
282291 end ,
283- binary :part (Pkt , {12 ,Offset - 12 })
284- ]),
285- MACCalc = if
286- element (1 , TS # tsig_state .mac ) == ? MODULE ->
287- mac (PktS , TS , Error , NowSigned , OtherData );
288- % % RFC8945, section 5.3.1: TSIG on TCP Connections
289- true ->
290- mac (TS , Error , NowSigned , OtherData )
291- end ,
292292 MACEq =
293293 MACSize == byte_size (MACCalc )
294294 andalso
@@ -333,7 +333,7 @@ macN({?MODULE,MAC}, #tsig_state{ mac = {crypto,MACState} }) ->
333333macN (Pkt , TS = # tsig_state { mac = {crypto ,MACState } }) ->
334334 {crypto ,crypto :mac_update (MACState , [
335335 <<(TS # tsig_state .id ):16 >>,
336- binary : part (Pkt , { 2 , byte_size (Pkt ) - 2 } )
336+ binary_part (Pkt , 2 , byte_size (Pkt )- 2 )
337337 ])}.
338338
339339% % RFC8945, section 5.3.2: Generation of TSIG on Error Returns
0 commit comments