]> git.saurik.com Git - apple/security.git/blobdiff - sec/Security/Regressions/otr/otr-otrdh.c
Security-55471.tar.gz
[apple/security.git] / sec / Security / Regressions / otr / otr-otrdh.c
diff --git a/sec/Security/Regressions/otr/otr-otrdh.c b/sec/Security/Regressions/otr/otr-otrdh.c
new file mode 100644 (file)
index 0000000..0c8cacc
--- /dev/null
@@ -0,0 +1,45 @@
+//
+//  otr-otrdh.c
+//  OTR
+//
+//  Created by Mitch Adler on 7/22/11.
+//  Copyright (c) 2011 Apple Inc. All rights reserved.
+//
+
+#include "Security_regressions.h"
+
+#include <Security/SecOTRMath.h>
+#include <Security/SecOTRDHKey.h>
+
+int otr_otrdh(int argc, char *const * argv)
+{
+    plan_tests(4);
+    
+    SecOTRFullDHKeyRef aliceFull = SecOTRFullDHKCreate(kCFAllocatorDefault);
+    SecOTRPublicDHKeyRef alicePublic = SecOTRPublicDHKCreateFromFullKey(kCFAllocatorDefault, aliceFull);
+    
+    SecOTRFullDHKeyRef bobFull = SecOTRFullDHKCreate(kCFAllocatorDefault);
+    SecOTRPublicDHKeyRef bobPublic = SecOTRPublicDHKCreateFromFullKey(kCFAllocatorDefault, bobFull);
+    
+    uint8_t aliceMessageKeys[2][kOTRMessageKeyBytes];
+    uint8_t aliceMacKeys[2][kOTRMessageMacKeyBytes];
+    
+    SecOTRDHKGenerateOTRKeys(aliceFull, bobPublic,
+                          aliceMessageKeys[0], aliceMacKeys[0],
+                          aliceMessageKeys[1], aliceMacKeys[1]);
+    
+    uint8_t bobMessageKeys[2][kOTRMessageKeyBytes];
+    uint8_t bobMacKeys[2][kOTRMessageMacKeyBytes];
+    
+    SecOTRDHKGenerateOTRKeys(bobFull, alicePublic,
+                          bobMessageKeys[0], bobMacKeys[0],
+                          bobMessageKeys[1], bobMacKeys[1]);
+    
+    
+    ok(0 == memcmp(aliceMessageKeys[0], bobMessageKeys[1], sizeof(aliceMessageKeys[0])), "Mac Keys don't match!!");
+    ok(0 == memcmp(aliceMessageKeys[1], bobMessageKeys[0], sizeof(aliceMessageKeys[1])), "Mac Keys don't match!!");
+    ok(0 == memcmp(aliceMacKeys[0], bobMacKeys[1], sizeof(aliceMacKeys[0])), "Mac Keys don't match!!");
+    ok(0 == memcmp(aliceMacKeys[1], bobMacKeys[0], sizeof(aliceMacKeys[1])), "Mac Keys don't match!!");
+    
+    return 0;
+}