]> git.saurik.com Git - apple/security.git/blobdiff - sec/Security/SecOTRDHKey.h
Security-55471.tar.gz
[apple/security.git] / sec / Security / SecOTRDHKey.h
diff --git a/sec/Security/SecOTRDHKey.h b/sec/Security/SecOTRDHKey.h
new file mode 100644 (file)
index 0000000..70594f1
--- /dev/null
@@ -0,0 +1,46 @@
+//
+//  SecOTRDHKey.h
+//  libsecurity_libSecOTR
+//
+//  Created by Mitch Adler on 3/2/11.
+//  Copyright 2011 Apple Inc. All rights reserved.
+//
+#ifndef _SECOTRDHKEY_H_
+#define _SECOTRDHKEY_H_
+
+#include <CoreFoundation/CFBase.h>
+#include <CoreFoundation/CFData.h>
+#include <corecrypto/ccn.h>
+
+__BEGIN_DECLS
+
+typedef struct _SecOTRFullDHKey* SecOTRFullDHKeyRef;
+typedef struct _SecOTRPublicDHKey* SecOTRPublicDHKeyRef;
+
+SecOTRFullDHKeyRef SecOTRFullDHKCreate(CFAllocatorRef allocator);
+SecOTRFullDHKeyRef SecOTRFullDHKCreateFromBytes(CFAllocatorRef allocator, const uint8_t**bytes, size_t*size);
+
+void SecFDHKNewKey(SecOTRFullDHKeyRef key);
+void SecFDHKAppendSerialization(SecOTRFullDHKeyRef fullKey, CFMutableDataRef appendTo);
+void SecFDHKAppendPublicSerialization(SecOTRFullDHKeyRef fullKey, CFMutableDataRef appendTo);
+uint8_t* SecFDHKGetHash(SecOTRFullDHKeyRef pubKey);
+
+
+SecOTRPublicDHKeyRef SecOTRPublicDHKCreateFromFullKey(CFAllocatorRef allocator, SecOTRFullDHKeyRef full);
+SecOTRPublicDHKeyRef SecOTRPublicDHKCreateFromSerialization(CFAllocatorRef allocator, const uint8_t**bytes, size_t*size);
+SecOTRPublicDHKeyRef SecOTRPublicDHKCreateFromBytes(CFAllocatorRef allocator, const uint8_t** bytes, size_t *size);
+
+void SecPDHKAppendSerialization(SecOTRPublicDHKeyRef pubKey, CFMutableDataRef appendTo);
+uint8_t* SecPDHKGetHash(SecOTRPublicDHKeyRef pubKey);
+
+void SecPDHKeyGenerateS(SecOTRFullDHKeyRef myKey, SecOTRPublicDHKeyRef theirKey, cc_unit* s);
+
+bool SecDHKIsGreater(SecOTRFullDHKeyRef myKey, SecOTRPublicDHKeyRef theirKey);
+
+void SecOTRDHKGenerateOTRKeys(SecOTRFullDHKeyRef myKey, SecOTRPublicDHKeyRef theirKey,
+                           uint8_t* sendMessageKey, uint8_t* sendMacKey,
+                           uint8_t* receiveMessageKey, uint8_t* receiveMacKey);
+
+__END_DECLS
+
+#endif