Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(789)

Unified Diff: openssl/include/openssl/poly1305.h

Issue 59083010: third_party/openssl: add ChaCha20+Poly1305 support. Base URL: https://chromium.googlesource.com/chromium/deps/openssl.git@master
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « openssl/include/openssl/evp.h ('k') | openssl/include/openssl/ssl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: openssl/include/openssl/poly1305.h
diff --git a/openssl/crypto/uid.c b/openssl/include/openssl/poly1305.h
similarity index 66%
copy from openssl/crypto/uid.c
copy to openssl/include/openssl/poly1305.h
index b1fd52badad795c337f7200179a34c4d365a9190..28f85ed96306c6509f29abc5233f844303a211bd 100644
--- a/openssl/crypto/uid.c
+++ b/openssl/include/openssl/poly1305.h
@@ -1,13 +1,20 @@
-/* crypto/uid.c */
+/*
+ * Poly1305
+ *
+ * Created on: Jun, 2013
+ * Author: Elie Bursztein (elieb@google.com)
+ *
+ * Adapted from the estream code by D. Bernstein.
+ */
/* ====================================================================
- * Copyright (c) 2001 The OpenSSL Project. All rights reserved.
+ * Copyright (c) 2011-2013 The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
+ * notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
@@ -46,44 +53,36 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
* ====================================================================
- *
- * This product includes cryptographic software written by Eric Young
- * (eay@cryptsoft.com). This product includes software written by Tim
- * Hudson (tjh@cryptsoft.com).
- *
*/
-#include <openssl/crypto.h>
+#ifndef HEADER_POLY1305_H_
+#define HEADER_POLY1305_H_
+
+#include <stdint.h>
#include <openssl/opensslconf.h>
-#if defined(__OpenBSD__) || (defined(__FreeBSD__) && __FreeBSD__ > 2)
-
-#include OPENSSL_UNISTD
-
-int OPENSSL_issetugid(void)
- {
- return issetugid();
- }
-
-#elif defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_NETWARE)
-
-int OPENSSL_issetugid(void)
- {
- return 0;
- }
-
-#else
-
-#include OPENSSL_UNISTD
-#include <sys/types.h>
-
-int OPENSSL_issetugid(void)
- {
- if (getuid() != geteuid()) return 1;
- if (getgid() != getegid()) return 1;
- return 0;
- }
+#if defined(OPENSSL_NO_POLY1305)
+#error Poly1305 support is disabled.
#endif
+typedef unsigned char poly1305_state[512];
+/* poly1305_init sets up |state| so that it can be used to calculate an
+ * authentication tag with the one-time key |key|. Note that |key| is a
+ * one-time key and therefore there is no `reset' method because that would
+ * enable several messages to be authenticated with the same key. */
+extern void CRYPTO_poly1305_init(poly1305_state* state,
+ const unsigned char key[32]);
+/* poly1305_update processes |in_len| bytes from |in|. It can be called zero or
+ * more times after poly1305_init. */
+extern void CRYPTO_poly1305_update(poly1305_state* state,
+ const unsigned char *in,
+ size_t in_len);
+
+/* poly1305_finish completes the poly1305 calculation and writes a 16 byte
+ * authentication tag to |mac|. */
+extern void CRYPTO_poly1305_finish(poly1305_state* state,
+ unsigned char mac[16]);
+
+#endif /* HEADER_POLY1305_H_ */
« no previous file with comments | « openssl/include/openssl/evp.h ('k') | openssl/include/openssl/ssl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698