HP StorageWorks 2/140 FW 08.01.00 McDATA E/OS SNMP Support Manual (620-000131- - Page 506
appended to the value of the temporary variable, and the result is
View all HP StorageWorks 2/140 manuals
Add to My Manuals
Save this manual to your list of manuals |
Page 506 highlights
SNMPv3 MIB G temp = MD5 (temp || random); delta[i*16 .. lenOfDelta-1] = temp XOR keyNew[i*16 .. lenOfDelta-1]; The 'random' and 'delta' components are then concatenated as described above, and the resulting octet string is sent to the recipient as the new value of an instance of this object. At the receiver side, when an instance of this object is set to a new value, then a new value of K is computed as follows: • a temporary variable is initialized to the existing value of K; • if the length of the delta component is greater than L octets, then: • the random component is appended to the value of the temporary variable, and the result is input to the hash algorithm H to produce a digest value, and the temporary variable is set to this digest value; • the value of the temporary variable is XOR-ed with the first (next) L-octets (16 octets in case of MD5) of the delta component to produce the first (next) L-octets (16 octets in case of MD5) of the new value of K. The above two steps are repeated until the unused portion of the delta component is L octets or less,the random component is appended to the value of the temporary variable, and the result is input to the hash algorithm H to produce a digest value. This digest value, truncated if necessary to be the same length as the unused portion of the delta component, is XOR-ed with the unused portion of the delta component to produce the (final portion of the) new value of K. For example, using MD5 as the hash algorithm H:iterations = (lenOfDelta - 1)/16; /* integer division */ temp = keyOld; for (i = 0; i < iterations; i++) { temp = MD5 (temp || random); keyNew[i*16 .. (i*16)+15] = temp XOR delta[i*16 .. (i*16)+15]; } temp = MD5 (temp || random); G-6 E/OS SNMP Support Manual