2 * Copyright (c) 2014 Contextream, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.lispflowmapping.serializer;
10 import static org.junit.Assert.assertArrayEquals;
11 import static org.junit.Assert.assertEquals;
12 import static org.junit.Assert.assertFalse;
13 import static org.junit.Assert.assertTrue;
15 import java.nio.ByteBuffer;
16 import java.util.ArrayList;
17 import org.junit.Test;
18 import org.opendaylight.lispflowmapping.lisp.serializer.MapNotifySerializer;
19 import org.opendaylight.lispflowmapping.lisp.serializer.exception.LispSerializationException;
20 import org.opendaylight.lispflowmapping.lisp.util.LispAddressUtil;
21 import org.opendaylight.lispflowmapping.lisp.util.MaskUtil;
22 import org.opendaylight.lispflowmapping.tools.junit.BaseTestCase;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.MapNotify;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.locatorrecords.LocatorRecord;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapnotifymessage.MapNotifyBuilder;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping._record.container.MappingRecord;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping._record.container.MappingRecord.Action;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping._record.container.MappingRecordBuilder;
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping._record.list.MappingRecordItem;
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping._record.list.MappingRecordItemBuilder;
32 public class MapNotifySerializationTest extends BaseTestCase {
35 public void serialize__Fields() throws Exception {
36 MapNotifyBuilder mnBuilder = new MapNotifyBuilder();
37 mnBuilder.setMappingRecordItem(new ArrayList<MappingRecordItem>());
38 mnBuilder.getMappingRecordItem().add(
39 new MappingRecordItemBuilder().setMappingRecord(
40 new MappingRecordBuilder().setEid(LispAddressUtil.asIpv4PrefixEid("0.0.0.1/32")).build())
41 .setMappingRecordItemId("xyzzy").build());
42 mnBuilder.getMappingRecordItem().add(
43 new MappingRecordItemBuilder().setMappingRecord(
44 new MappingRecordBuilder().setEid(LispAddressUtil.asIpv4PrefixEid("0.0.0.73/32")).build())
45 .setMappingRecordItemId("xyzzy").build());
47 mnBuilder.setNonce(6161616161L);
48 mnBuilder.setKeyId((short) 0x0001);
49 byte[] authenticationData = new byte[] { (byte) 0x16, (byte) 0x98, (byte) 0x96, (byte) 0xeb, (byte) 0x88,
50 (byte) 0x2d, (byte) 0x4d, (byte) 0x22, (byte) 0xe5, (byte) 0x8f, (byte) 0xe6, (byte) 0x89, (byte) 0x64,
51 (byte) 0xb9, (byte) 0x17, (byte) 0xa4, (byte) 0xba, (byte) 0x4e, (byte) 0x8c, (byte) 0x41 };
52 mnBuilder.setAuthenticationData(authenticationData);
54 ByteBuffer bb = MapNotifySerializer.getInstance().serialize(mnBuilder.build());
55 assertHexEquals((byte) 0x40, bb.get()); // Type + MSByte of reserved
56 assertEquals(0, bb.getShort()); // Rest of reserved
57 assertEquals(2, bb.get()); // Record Count
58 assertEquals(6161616161L, bb.getLong()); // Nonce
59 assertHexEquals((short) 0x0001, bb.getShort()); // Key ID
60 assertEquals(authenticationData.length, bb.getShort());
62 byte[] actualAuthenticationData = new byte[20];
63 bb.get(actualAuthenticationData);
64 assertArrayEquals(authenticationData, actualAuthenticationData);
66 bb.position(bb.position() + 12); /* EID in first record */
67 assertEquals(0x1, bb.getInt());
69 bb.position(bb.position() + 12); /* EID in second record */
70 assertEquals(73, bb.getInt());
72 assertEquals(bb.position(), bb.capacity());
76 public void serialize__deserialize() throws Exception {
77 MapNotifyBuilder mnBuilder = new MapNotifyBuilder();
78 mnBuilder.setMappingRecordItem(new ArrayList<MappingRecordItem>());
79 mnBuilder.getMappingRecordItem().add(
80 new MappingRecordItemBuilder().setMappingRecord(
81 new MappingRecordBuilder().setEid(LispAddressUtil.asIpv4PrefixEid("0.0.0.1/32")).build())
82 .setMappingRecordItemId("xyzzy").build());
83 mnBuilder.getMappingRecordItem().add(
84 new MappingRecordItemBuilder().setMappingRecord(
85 new MappingRecordBuilder().setEid(LispAddressUtil.asIpv4PrefixEid("0.0.0.73/32")).build())
86 .setMappingRecordItemId("xyzzy").build());
88 mnBuilder.setNonce(6161616161L);
89 mnBuilder.setKeyId((short) 0x0001);
90 byte[] authenticationData = new byte[] { (byte) 0x16, (byte) 0x98, (byte) 0x96, (byte) 0xeb, (byte) 0x88,
91 (byte) 0x2d, (byte) 0x4d, (byte) 0x22, (byte) 0xe5, (byte) 0x8f, (byte) 0xe6, (byte) 0x89, (byte) 0x64,
92 (byte) 0xb9, (byte) 0x17, (byte) 0xa4, (byte) 0xba, (byte) 0x4e, (byte) 0x8c, (byte) 0x41 };
93 mnBuilder.setAuthenticationData(authenticationData);
95 MapNotify mn = mnBuilder.build();
96 assertArrayEquals(MapNotifySerializer.getInstance().serialize(mn).array(),
97 MapNotifySerializer.getInstance().serialize(MapNotifySerializer.getInstance()
98 .deserialize(MapNotifySerializer.getInstance().serialize(mn))).array());
103 public void deserialize__AllFields() throws Exception {
104 // LISP(Type = 4 Map-Notify, I=1
106 // Nonce: (something)
108 // AuthDataLength: 00 Data:
109 // EID prefix: 153.16.254.1/32 (EID=0x9910FE01), TTL: 10, Authoritative,
111 // Local RLOC: 192.168.136.10 (RLOC=0xC0A8880A), Reachable,
112 // Priority/Weight: 1/100, Multicast Priority/Weight: 255/0
115 MapNotify mn = MapNotifySerializer.getInstance().deserialize(hexToByteBuffer("48 00 00 01 FF BB "
116 + "00 00 00 00 00 00 00 00 00 00 00 00 "
117 + "00 0a 01 20 10 00 00 00 00 01 99 10 fe 01 01 64 "
118 + "ff 00 00 05 00 01 c0 a8 88 0a "
119 + "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 " // xTR-ID
120 + "00 00 00 00 00 00 00 01 " // Site-ID
124 assertTrue(mn.getXtrSiteIdPresent());
126 assertEquals(1, mn.getMappingRecordItem().size());
127 assertEquals(0xFFBB000000000000L, mn.getNonce().longValue());
128 assertEquals(0x0000, mn.getKeyId().shortValue());
129 byte[] expectedAuthenticationData = {};
130 assertArrayEquals(expectedAuthenticationData, mn.getAuthenticationData());
134 public void serialize__NoAuthenticationData() throws Exception {
135 MapNotifyBuilder mnBuilder = new MapNotifyBuilder();
136 mnBuilder.setMappingRecordItem(new ArrayList<MappingRecordItem>());
137 mnBuilder.getMappingRecordItem().add(
138 new MappingRecordItemBuilder().setMappingRecord(
139 new MappingRecordBuilder().setEid(LispAddressUtil.asIpv4PrefixEid("0.0.0.1/32"))
140 .setRecordTtl(55).build()).setMappingRecordItemId("xyzzy").build());
142 ByteBuffer bb = MapNotifySerializer.getInstance().serialize(mnBuilder.build());
143 bb.position(bb.position() + 14); // jump to AuthenticationDataLength
144 assertEquals(0, bb.getShort());
145 assertEquals(55, bb.getInt());
147 mnBuilder.setAuthenticationData(null);
149 bb = MapNotifySerializer.getInstance().serialize(mnBuilder.build());
150 bb.position(bb.position() + 14); // jump to AuthenticationDataLength
151 assertEquals(0, bb.getShort());
152 assertEquals(55, bb.getInt());
154 mnBuilder.setAuthenticationData(new byte[0]);
156 bb = MapNotifySerializer.getInstance().serialize(mnBuilder.build());
157 bb.position(bb.position() + 14); // jump to AuthenticationDataLength
158 assertEquals(0, bb.getShort());
159 assertEquals(55, bb.getInt());
163 public void serialize__NoPrefixInEidToLocator() throws Exception {
164 MapNotifyBuilder mnBuilder = new MapNotifyBuilder();
165 mnBuilder.setMappingRecordItem(new ArrayList<MappingRecordItem>());
166 mnBuilder.getMappingRecordItem().add(new MappingRecordItemBuilder().setMappingRecord(
167 new MappingRecordBuilder().build()).setMappingRecordItemId("xyzzy").build());
168 mnBuilder.getMappingRecordItem().add(new MappingRecordItemBuilder().setMappingRecord(
169 new MappingRecordBuilder().setEid(null).build()).setMappingRecordItemId("xyzzy").build());
170 mnBuilder.getMappingRecordItem().add(new MappingRecordItemBuilder().setMappingRecord(
171 new MappingRecordBuilder().setEid(LispAddressUtil.getNoAddressEid()).build())
172 .setMappingRecordItemId("xyzzy").build());
174 ByteBuffer bb = MapNotifySerializer.getInstance().serialize(mnBuilder.build());
175 bb.position(bb.position() + 16); // jump to first record prefix AFI
176 assertEquals(0, bb.getShort());
178 bb.position(bb.position() + 10); // jump to second record prefix AFI
179 assertEquals(0, bb.getShort());
181 bb.position(bb.position() + 10); // jump to third record prefix AFI
182 assertEquals(0, bb.getShort());
186 public void deserialize__MultipleRecords() throws Exception {
187 // LISP(Type = 4 Map-Notify, I=1
189 // EID prefixes: 153.16.254.1 -- 152.16.254.1 -- 151.16.254.1 --
191 // Local RLOCs: 192.168.136.10 -- 192.168.136.11 -- 192.168.136.12 --
194 MapNotify mn = MapNotifySerializer.getInstance().deserialize(hexToByteBuffer("40 00 00 "
195 + "04 " // Record count
196 + "FF BB 00 00 00 00 00 00 00 01 00 14 87 c1 33 cd "
197 + "d1 1e bc 80 fd 3e 71 11 81 17 40 74 26 25 44 bd "
198 + "00 00 00 0a 01 20 10 00 00 00 00 01 99 10 fe 01 01 64 " // Record
200 + "ff 00 00 05 00 01 c0 a8 88 0a " // contd
201 + "00 00 00 0a 01 20 10 00 00 00 00 01 98 10 fe 01 01 64 " // Record
203 + "ff 00 00 05 00 01 c0 a8 88 0b " // contd
204 + "00 00 00 0a 01 20 10 00 00 00 00 01 97 10 fe 01 01 64 " // Record
206 + "ff 00 00 05 00 01 c0 a8 88 0c " // contd
207 + "00 00 00 0a 01 20 10 00 00 00 00 01 96 10 fe 01 01 64 " // Record
209 + "ff 00 00 05 00 01 c0 a8 88 0d " // contd
212 assertEquals(4, mn.getMappingRecordItem().size());
213 assertEquals(LispAddressUtil.asIpv4PrefixBinaryEid("153.16.254.1/32"), mn.getMappingRecordItem().get(0)
214 .getMappingRecord().getEid());
215 assertEquals(LispAddressUtil.asIpv4PrefixBinaryEid("151.16.254.1/32"), mn.getMappingRecordItem().get(2)
216 .getMappingRecord().getEid());
217 assertEquals(LispAddressUtil.asIpv4Rloc("192.168.136.11"), mn.getMappingRecordItem().get(1)
218 .getMappingRecord().getLocatorRecord().get(0).getRloc());
219 assertEquals(LispAddressUtil.asIpv4Rloc("192.168.136.13"), mn.getMappingRecordItem().get(3)
220 .getMappingRecord().getLocatorRecord().get(0).getRloc());
224 public void deserialize__Locators() throws Exception {
225 MapNotify mn = MapNotifySerializer.getInstance().deserialize(hexToByteBuffer("40 00 01 01 "
226 + "FF BB 00 00 00 00 00 00 00 01 00 14 f1 b8 ab f0 "
227 + "66 bb 2e ef 12 70 74 46 6f 6b 8e ca bf 1e 68 40 "
229 + "03 " // Locator Count
230 + "20 10 00 00 00 00 01 99 10 fe 01 "
232 + "01 64 1f 00 " // priorities + weights
234 + "00 01 c0 a8 88 0a " // Locator
236 + "67 00 30 34 " // priorities + weights
238 + "00 01 cc aa AA 11 " // Locator
240 + "60 11 34 A4 " // priorities + weights
242 + "00 01 c0 a8 88 0a " // Locator
245 assertEquals(1, mn.getMappingRecordItem().size());
246 MappingRecordItem eidToLocator = mn.getMappingRecordItem().get(0);
247 assertEquals(3, eidToLocator.getMappingRecord().getLocatorRecord().size());
248 LocatorRecord loc0 = eidToLocator.getMappingRecord().getLocatorRecord().get(0);
249 LocatorRecord loc1 = eidToLocator.getMappingRecord().getLocatorRecord().get(1);
250 LocatorRecord loc2 = eidToLocator.getMappingRecord().getLocatorRecord().get(2);
251 assertEquals((byte) 0x01, loc0.getPriority().byteValue());
252 assertEquals((byte) 0x67, loc1.getPriority().byteValue());
253 assertEquals((byte) 0x60, loc2.getPriority().byteValue());
255 assertEquals((byte) 0x64, loc0.getWeight().byteValue());
256 assertEquals((byte) 0x00, loc1.getWeight().byteValue());
257 assertEquals((byte) 0x11, loc2.getWeight().byteValue());
259 assertEquals((byte) 0x1F, loc0.getMulticastPriority().byteValue());
260 assertEquals((byte) 0x30, loc1.getMulticastPriority().byteValue());
261 assertEquals((byte) 0x34, loc2.getMulticastPriority().byteValue());
263 assertEquals((byte) 0x00, loc0.getMulticastWeight().byteValue());
264 assertEquals((byte) 0x34, loc1.getMulticastWeight().byteValue());
265 assertEquals((byte) 0xA4, loc2.getMulticastWeight().byteValue());
267 assertTrue(loc0.getLocalLocator());
268 assertFalse(loc1.getLocalLocator());
269 assertFalse(loc2.getLocalLocator());
271 assertFalse(loc0.getRlocProbed());
272 assertTrue(loc1.getRlocProbed());
273 assertTrue(loc2.getRlocProbed());
275 assertTrue(loc0.getRouted());
276 assertFalse(loc1.getRouted());
277 assertTrue(loc2.getRouted());
279 assertEquals(LispAddressUtil.asIpv4Rloc("192.168.136.10"), loc0.getRloc());
280 assertEquals(LispAddressUtil.asIpv4Rloc("204.170.170.17"), loc1.getRloc());
284 public void deserialize__SomeEidToLocatorFiels() throws Exception {
285 // LISP(Type = 4 Map-Notify, I=0
287 // EID prefixes: 153.16.254.1 -- 152.16.254.1 -- 151.16.254.1 --
289 // Local RLOCs: 192.168.136.10 -- 192.168.136.11 -- 192.168.136.12 --
292 MapNotify mn = MapNotifySerializer.getInstance().deserialize(hexToByteBuffer("40 00 00 "
294 + "04 " // Record count
295 + "FF BB 00 00 00 00 00 00 00 01 00 14 b9 cd 7b 89 " //
296 + "65 c2 56 03 be dd 81 20 47 e5 c3 4f 56 02 e1 59 " //
297 + "00 00 00 0a 01 20 10 00 00 00 00 01 99 10 fe 01 01 64 " // Record
299 + "ff 00 00 05 00 01 c0 a8 88 0a " // contd
300 + "00 00 00 0b 01 17 50 00 01 11 00 01 98 10 fe 01 01 64 " // Record
302 + "ff 00 00 05 00 01 c0 a8 88 0b " // contd
303 + "00 00 00 0c 01 20 00 00 02 22 00 01 97 10 fe 01 01 64 " // Record
305 + "ff 00 00 05 00 01 c0 a8 88 0c " // contd
306 + "00 00 00 0d 01 20 20 00 03 33 00 01 96 10 fe 01 01 64 " // Record
308 + "ff 00 00 05 00 01 c0 a8 88 0d " // contd
311 assertEquals(4, mn.getMappingRecordItem().size());
313 final MappingRecord record0 = mn.getMappingRecordItem().get(0).getMappingRecord();
314 final MappingRecord record1 = mn.getMappingRecordItem().get(1).getMappingRecord();
315 final MappingRecord record2 = mn.getMappingRecordItem().get(2).getMappingRecord();
316 final MappingRecord record3 = mn.getMappingRecordItem().get(3).getMappingRecord();
318 assertEquals(10, record0.getRecordTtl().intValue());
319 assertEquals(13, record3.getRecordTtl().intValue());
321 assertEquals(32, MaskUtil.getMaskForAddress(record0.getEid().getAddress()));
322 assertEquals(23, MaskUtil.getMaskForAddress(record1.getEid().getAddress()));
324 assertEquals(Action.NoAction, record0.getAction());
325 assertEquals(Action.SendMapRequest, record1.getAction());
326 assertEquals(Action.NoAction, record2.getAction());
327 assertEquals(Action.NativelyForward, record3.getAction());
329 assertTrue(record0.getAuthoritative());
330 assertTrue(record1.getAuthoritative());
331 assertFalse(record2.getAuthoritative());
332 assertFalse(record3.getAuthoritative());
334 assertEquals(0x000, record0.getMapVersion().shortValue());
335 assertEquals(0x111, record1.getMapVersion().shortValue());
336 assertEquals(0x222, record2.getMapVersion().shortValue());
337 assertEquals(0x333, record3.getMapVersion().shortValue());
341 public void deserialize__IllegalAction() throws Exception {
342 MapNotify mn = MapNotifySerializer.getInstance().deserialize(hexToByteBuffer("40 00 01 01 FF BB "
343 + "00 00 00 00 00 00 00 01 00 14 ec 47 1e 53 25 91 "
344 + "2f 68 10 75 13 dd 2c e8 6e 3c ac 94 ed e4 00 00 "
345 + "00 0a 01 20 F0 00 00 00 00 01 99 10 fe 01 01 64 "
346 + "ff 00 00 05 00 01 c0 a8 88 0a"));
348 assertEquals(1, mn.getMappingRecordItem().size());
349 assertEquals(Action.NoAction, mn.getMappingRecordItem().get(0).getMappingRecord().getAction());
352 @Test(expected = LispSerializationException.class)
353 public void deserialize_WrongAuthenticationLength() throws Exception {
354 // LISP(Type = 4 Map-Notify, I=0
356 // Nonce: (something)
358 // AuthDataLength: 20 Data:
359 // e8:f5:0b:c5:c5:f2:b0:21:27:a8:a5:68:89:ec
360 // EID prefix: 153.16.254.1/32 (EID=0x9910FE01), TTL: 10, Authoritative,
362 // Local RLOC: 192.168.136.10 (RLOC=0xC0A8880A), Reachable,
363 // Priority/Weight: 1/100, Multicast Priority/Weight: 255/0
365 MapNotifySerializer.getInstance().deserialize(hexToByteBuffer("48 00 00 01 FF BB "
366 + "00 00 00 00 00 00 00 00 00 14 e8 f5 0b c5 c5 f2 "
367 + "b0 21 27 a8 21 a5 68 89 ec 00 00 "
368 + "00 0a 01 20 10 00 00 00 00 01 99 10 fe 01 01 64 "
369 + "ff 00 00 05 00 01 c0 a8 88 0a"));
373 public void deserialize__SHA1() throws Exception {
374 // LISP(Type = 4 Map-Notify, I=0
376 // Nonce: (something)
378 // AuthDataLength: 20 Data:
379 // b2:dd:1a:25:c0:60:b1:46:e8:dc:6d:a6:ae:2e:92:92:a6:ca:b7:9d
380 // EID prefix: 153.16.254.1/32 (EID=0x9910FE01), TTL: 10, Authoritative,
382 // Local RLOC: 192.168.136.10 (RLOC=0xC0A8880A), Reachable,
383 // Priority/Weight: 1/100, Multicast Priority/Weight: 255/0
385 MapNotify mn = MapNotifySerializer.getInstance().deserialize(hexToByteBuffer("40 00 00 01 FF BB "
386 + "00 00 00 00 00 00 00 01 00 14 2c 61 b9 c9 9a 20 "
387 + "ba d8 f5 40 d3 55 6f 5f 6e 5a b2 0a bf b5 00 00 "
388 + "00 0a 01 20 10 00 00 00 00 01 99 10 fe 01 01 64 "
389 + "ff 00 00 05 00 01 c0 a8 88 0a"));
391 assertFalse(mn.getXtrSiteIdPresent());
393 assertEquals(1, mn.getMappingRecordItem().size());
394 assertEquals(0xFFBB000000000000L, mn.getNonce().longValue());
395 assertEquals(0x0001, mn.getKeyId().shortValue());
396 byte[] expectedAuthenticationData = { (byte) 0x2c, (byte) 0x61, (byte) 0xb9, (byte) 0xc9, (byte) 0x9a,
397 (byte) 0x20, (byte) 0xba, (byte) 0xd8, (byte) 0xf5, (byte) 0x40, (byte) 0xd3, (byte) 0x55, (byte) 0x6f,
398 (byte) 0x5f, (byte) 0x6e, (byte) 0x5a, (byte) 0xb2, (byte) 0x0a, (byte) 0xbf, (byte) 0xb5 };
399 assertArrayEquals(expectedAuthenticationData, mn.getAuthenticationData());
403 public void deserialize__SHA256() throws Exception {
404 // LISP(Type = 4 Map-Notify, I=0
406 // Nonce: (something)
408 // AuthDataLength: 32 Data:
409 // 70 30 d4 c6 10 44 0d 83 be 4d bf fd a9 8c 57 6d 68 a5 bf 32 11 c9 7b
410 // 58 c4 b9 9f 06 11 23 b9 38
411 // EID prefix: 153.16.254.1/32 (EID=0x9910FE01), TTL: 10, Authoritative,
413 // Local RLOC: 192.168.136.10 (RLOC=0xC0A8880A), Reachable,
414 // Priority/Weight: 1/100, Multicast Priority/Weight: 255/0
416 MapNotify mn = MapNotifySerializer.getInstance().deserialize(hexToByteBuffer("40 00 00 01 FF BB "
417 + "00 00 00 00 00 00 00 02 00 20 70 30 d4 c6 10 44 0d 83 be 4d bf fd a9 8c 57 6d 68 a5 bf 32 "
418 + "11 c9 7b 58 c4 b9 9f 06 11 23 b9 38 00 00 "
419 + "00 0a 01 20 10 00 00 00 00 01 99 10 fe 01 01 64 "
420 + "ff 00 00 05 00 01 c0 a8 88 0a"));
422 assertFalse(mn.getXtrSiteIdPresent());
424 assertEquals(1, mn.getMappingRecordItem().size());
425 assertEquals(0xFFBB000000000000L, mn.getNonce().longValue());
426 assertEquals(0x0002, mn.getKeyId().shortValue());
427 byte[] expectedAuthenticationData = { (byte) 0x70, (byte) 0x30, (byte) 0xd4, (byte) 0xc6, (byte) 0x10,
428 (byte) 0x44, (byte) 0x0d, (byte) 0x83, (byte) 0xbe, (byte) 0x4d, (byte) 0xbf, (byte) 0xfd, (byte) 0xa9,
429 (byte) 0x8c, (byte) 0x57, (byte) 0x6d, (byte) 0x68, (byte) 0xa5, (byte) 0xbf, (byte) 0x32, (byte) 0x11,
430 (byte) 0xc9, (byte) 0x7b, (byte) 0x58, (byte) 0xc4, (byte) 0xb9, (byte) 0x9f, (byte) 0x06, (byte) 0x11,
431 (byte) 0x23, (byte) 0xb9, (byte) 0x38 };
432 assertArrayEquals(expectedAuthenticationData, mn.getAuthenticationData());