]> git.saurik.com Git - apple/security.git/blob - sec/Security/Regressions/otr/otr-otrdh.c
Security-55471.14.8.tar.gz
[apple/security.git] / sec / Security / Regressions / otr / otr-otrdh.c
1 //
2 // otr-otrdh.c
3 // OTR
4 //
5 // Created by Mitch Adler on 7/22/11.
6 // Copyright (c) 2011 Apple Inc. All rights reserved.
7 //
8
9 #include "Security_regressions.h"
10
11 #include <Security/SecOTRMath.h>
12 #include <Security/SecOTRDHKey.h>
13
14 int otr_otrdh(int argc, char *const * argv)
15 {
16 plan_tests(4);
17
18 SecOTRFullDHKeyRef aliceFull = SecOTRFullDHKCreate(kCFAllocatorDefault);
19 SecOTRPublicDHKeyRef alicePublic = SecOTRPublicDHKCreateFromFullKey(kCFAllocatorDefault, aliceFull);
20
21 SecOTRFullDHKeyRef bobFull = SecOTRFullDHKCreate(kCFAllocatorDefault);
22 SecOTRPublicDHKeyRef bobPublic = SecOTRPublicDHKCreateFromFullKey(kCFAllocatorDefault, bobFull);
23
24 uint8_t aliceMessageKeys[2][kOTRMessageKeyBytes];
25 uint8_t aliceMacKeys[2][kOTRMessageMacKeyBytes];
26
27 SecOTRDHKGenerateOTRKeys(aliceFull, bobPublic,
28 aliceMessageKeys[0], aliceMacKeys[0],
29 aliceMessageKeys[1], aliceMacKeys[1]);
30
31 uint8_t bobMessageKeys[2][kOTRMessageKeyBytes];
32 uint8_t bobMacKeys[2][kOTRMessageMacKeyBytes];
33
34 SecOTRDHKGenerateOTRKeys(bobFull, alicePublic,
35 bobMessageKeys[0], bobMacKeys[0],
36 bobMessageKeys[1], bobMacKeys[1]);
37
38
39 ok(0 == memcmp(aliceMessageKeys[0], bobMessageKeys[1], sizeof(aliceMessageKeys[0])), "Mac Keys don't match!!");
40 ok(0 == memcmp(aliceMessageKeys[1], bobMessageKeys[0], sizeof(aliceMessageKeys[1])), "Mac Keys don't match!!");
41 ok(0 == memcmp(aliceMacKeys[0], bobMacKeys[1], sizeof(aliceMacKeys[0])), "Mac Keys don't match!!");
42 ok(0 == memcmp(aliceMacKeys[1], bobMacKeys[0], sizeof(aliceMacKeys[1])), "Mac Keys don't match!!");
43
44 return 0;
45 }