From 1d50adf87ae49dddeb6c044f4ecb03448f605c12 Mon Sep 17 00:00:00 2001 From: DX-MON Date: Tue, 10 Jun 2014 10:41:00 +0100 Subject: [PATCH] Added a sample that fixes comment two on issue #1264. --- lib/linguist/samples.json | 47 +++++++++++++-------- samples/C/ntru_encrypt.h | 89 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 118 insertions(+), 18 deletions(-) create mode 100644 samples/C/ntru_encrypt.h diff --git a/lib/linguist/samples.json b/lib/linguist/samples.json index 6a99a786..8e0c5465 100644 --- a/lib/linguist/samples.json +++ b/lib/linguist/samples.json @@ -560,8 +560,8 @@ ".gitconfig" ] }, - "tokens_total": 454570, - "languages_total": 557, + "tokens_total": 454619, + "languages_total": 558, "tokens": { "IDL": { ";": 59, @@ -41660,30 +41660,30 @@ "After": 1 }, "C": { - "#include": 154, + "#include": 159, "": 5, "": 2, "": 3, "": 3, "": 5, "": 2, - "#ifndef": 89, + "#ifndef": 90, "ULLONG_MAX": 10, - "#endif": 245, + "#endif": 246, "MIN": 3, "#if": 92, "HTTP_PARSER_DEBUG": 4, - "#define": 920, + "#define": 921, "SET_ERRNO": 47, - "(": 6247, + "(": 6249, "e": 4, - ")": 6249, + ")": 6251, "do": 21, "{": 1532, "parser": 334, "-": 1803, "http_errno": 11, - ";": 5466, + ";": 5468, "error_lineno": 3, "__LINE__": 50, "}": 1548, @@ -41721,7 +41721,7 @@ "KEEP_ALIVE": 4, "CLOSE": 4, "static": 457, - "const": 360, + "const": 368, "char": 530, "*method_strings": 1, "[": 603, @@ -41729,7 +41729,7 @@ "XX": 63, "num": 24, "name": 28, - "string": 18, + "string": 20, "#string": 1, "HTTP_METHOD_MAP": 3, "#undef": 7, @@ -41919,7 +41919,7 @@ "<": 219, "HPE_INVALID_VERSION": 12, "http_major": 11, - "*": 261, + "*": 262, "http_minor": 11, "HPE_INVALID_STATUS": 3, "status_code": 8, @@ -41998,7 +41998,7 @@ "http_should_keep_alive": 2, "http_method_str": 1, "m": 8, - "void": 288, + "void": 289, "http_parser_init": 2, "http_parser_type": 3, "memset": 4, @@ -42395,7 +42395,7 @@ "i_rfString_Before": 5, "i_rfString_After": 5, "afterP": 2, - "out": 18, + "out": 19, "after": 6, "rfString_Afterv": 4, "i_rfString_Afterv": 16, @@ -44221,7 +44221,7 @@ "bitcountCommand": 1, "redisLogRaw": 3, "level": 12, - "*msg": 7, + "*msg": 8, "syslogLevelMap": 2, "LOG_DEBUG": 1, "LOG_INFO": 1, @@ -46822,6 +46822,17 @@ "jfloat": 1, "Java_jni_JniLayer_jni_1layer_1report_1analog_1chg": 1, "Java_jni_JniLayer_jni_1layer_1kill": 1, + "PQC_ENCRYPT_H": 2, + "": 1, + "": 1, + "ntru_encrypt_poly": 1, + "fmpz_poly_t": 6, + "msg_tern": 1, + "pub_key": 2, + "rnd": 2, + "ntru_params": 2, + "*params": 2, + "ntru_encrypt_string": 1, "BOOTSTRAP_H": 2, "*true": 1, "*false": 1, @@ -49253,7 +49264,7 @@ "AsciiDoc": 103, "Protocol Buffer": 63, "Common Lisp": 103, - "C": 59088, + "C": 59137, "XQuery": 801, "RobotFramework": 483, "Gosu": 410, @@ -49400,7 +49411,7 @@ "AsciiDoc": 3, "Protocol Buffer": 1, "Common Lisp": 1, - "C": 30, + "C": 31, "XQuery": 1, "RobotFramework": 3, "Gosu": 4, @@ -49412,5 +49423,5 @@ "GLSL": 3, "Xtend": 2 }, - "md5": "43be9202f3e299ffea3af7298cc39aaa" + "md5": "5b3ac3847ff456b82cf95a19d03449a4" } \ No newline at end of file diff --git a/samples/C/ntru_encrypt.h b/samples/C/ntru_encrypt.h new file mode 100644 index 00000000..4893f6f9 --- /dev/null +++ b/samples/C/ntru_encrypt.h @@ -0,0 +1,89 @@ +/* + * Copyright (C) 2014 FH Bielefeld + * + * This file is part of a FH Bielefeld project. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ + +/** + * @file ntru_encrypt.h + * Header for the internal API of ntru_encrypt.c. + * @brief header for encrypt.c + */ + +#ifndef PQC_ENCRYPT_H +#define PQC_ENCRYPT_H + + +#include "ntru_params.h" +#include "ntru_poly.h" +#include "ntru_string.h" + +#include +#include + + +/** + * encrypt the msg, using the math: + * e = (h ∗ r) + m (mod q) + * + * e = the encrypted poly + * + * h = the public key + * + * r = the random poly + * + * m = the message poly + * + * q = large mod + * + * @param msg_tern the message to encrypt, in ternary format + * @param pub_key the public key + * @param rnd the random poly (should have relatively small + * coefficients, but not restricted to {-1, 0, 1}) + * @param out the output poly which is in the range {0, q-1} + * (not ternary!) [out] + * @param params ntru_params the ntru context + */ +void +ntru_encrypt_poly( + const fmpz_poly_t msg_tern, + const fmpz_poly_t pub_key, + const fmpz_poly_t rnd, + fmpz_poly_t out, + const ntru_params *params); + +/** + * Encrypt a message in the form of a null-terminated char array and + * return a string. + * + * @param msg the message + * @param pub_key the public key + * @param rnd the random poly (should have relatively small + * coefficients, but not restricted to {-1, 0, 1}) + * @param params ntru_params the ntru context + * @return the newly allocated encrypted string + */ +string * +ntru_encrypt_string( + const string *msg, + const fmpz_poly_t pub_key, + const fmpz_poly_t rnd, + const ntru_params *params); + + +#endif /* PQC_ENCRYPT_H */