Run util/openssl-format-source -v -c .
[openssl.git] / crypto / ecdh / ech_kdf.c
index 352bbf2f62a7bd89d47bc7c5455a61139b12beb2..1e77c6f519451d31f29bc3531003bf5898a8f167 100644 (file)
@@ -10,7 +10,7 @@
  * 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
  * ====================================================================
  */
 
-
-
 #include <string.h>
 #include <openssl/ecdh.h>
 #include <openssl/evp.h>
 
-
 /* Key derivation function from X9.62/SECG */
 /* Way more than we will ever need */
-#define ECDH_KDF_MAX   (1 << 30)
+#define ECDH_KDF_MAX    (1 << 30)
 
-int ECDH_KDF_X9_62(unsigned char *out, size_t outlen, 
-               const unsigned char *Z, size_t Zlen,
-               const unsigned char *sinfo, size_t sinfolen,
-               const EVP_MD *md)
-       {
-       EVP_MD_CTX mctx;
-       int rv = 0;
-       unsigned int i;
-       size_t mdlen;
-       unsigned char ctr[4];
-       if (sinfolen > ECDH_KDF_MAX || outlen > ECDH_KDF_MAX || Zlen > ECDH_KDF_MAX)
-               return 0;
-       mdlen = EVP_MD_size(md);
-       EVP_MD_CTX_init(&mctx);
-       for (i = 1;;i++)
-               {
-               unsigned char mtmp[EVP_MAX_MD_SIZE];
-               EVP_DigestInit_ex(&mctx, md, NULL);
-               ctr[3] = i & 0xFF;
-               ctr[2] = (i >> 8) & 0xFF;
-               ctr[1] = (i >> 16) & 0xFF;
-               ctr[0] = (i >> 24) & 0xFF;
-               if (!EVP_DigestUpdate(&mctx, Z, Zlen))
-                       goto err;
-               if (!EVP_DigestUpdate(&mctx, ctr, sizeof(ctr)))
-                       goto err;
-               if (!EVP_DigestUpdate(&mctx, sinfo, sinfolen))
-                       goto err;
-               if (outlen >= mdlen)
-                       {
-                       if (!EVP_DigestFinal(&mctx, out, NULL))
-                               goto err;
-                       outlen -= mdlen;
-                       if (outlen == 0)
-                               break;
-                       out += mdlen;
-                       }
-               else
-                       {
-                       if (!EVP_DigestFinal(&mctx, mtmp, NULL))
-                               goto err;
-                       memcpy(out, mtmp, outlen);
-                       OPENSSL_cleanse(mtmp, mdlen);
-                       break;
-                       }
-               }
-       rv = 1;
-       err:
-       EVP_MD_CTX_cleanup(&mctx);
-       return rv;
-       }
-       
+int ECDH_KDF_X9_62(unsigned char *out, size_t outlen,
+                   const unsigned char *Z, size_t Zlen,
+                   const unsigned char *sinfo, size_t sinfolen,
+                   const EVP_MD *md)
+{
+    EVP_MD_CTX mctx;
+    int rv = 0;
+    unsigned int i;
+    size_t mdlen;
+    unsigned char ctr[4];
+    if (sinfolen > ECDH_KDF_MAX || outlen > ECDH_KDF_MAX
+        || Zlen > ECDH_KDF_MAX)
+        return 0;
+    mdlen = EVP_MD_size(md);
+    EVP_MD_CTX_init(&mctx);
+    for (i = 1;; i++) {
+        unsigned char mtmp[EVP_MAX_MD_SIZE];
+        EVP_DigestInit_ex(&mctx, md, NULL);
+        ctr[3] = i & 0xFF;
+        ctr[2] = (i >> 8) & 0xFF;
+        ctr[1] = (i >> 16) & 0xFF;
+        ctr[0] = (i >> 24) & 0xFF;
+        if (!EVP_DigestUpdate(&mctx, Z, Zlen))
+            goto err;
+        if (!EVP_DigestUpdate(&mctx, ctr, sizeof(ctr)))
+            goto err;
+        if (!EVP_DigestUpdate(&mctx, sinfo, sinfolen))
+            goto err;
+        if (outlen >= mdlen) {
+            if (!EVP_DigestFinal(&mctx, out, NULL))
+                goto err;
+            outlen -= mdlen;
+            if (outlen == 0)
+                break;
+            out += mdlen;
+        } else {
+            if (!EVP_DigestFinal(&mctx, mtmp, NULL))
+                goto err;
+            memcpy(out, mtmp, outlen);
+            OPENSSL_cleanse(mtmp, mdlen);
+            break;
+        }
+    }
+    rv = 1;
+ err:
+    EVP_MD_CTX_cleanup(&mctx);
+    return rv;
+}