Added a sample that fixes comment two on issue #1264.

This commit is contained in:
DX-MON
2014-06-10 10:41:00 +01:00
parent 614a61b0b0
commit 1d50adf87a
2 changed files with 118 additions and 18 deletions

View File

@@ -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,
"<assert.h>": 5,
"<stddef.h>": 2,
"<ctype.h>": 3,
"<stdlib.h>": 3,
"<string.h>": 5,
"<limits.h>": 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,
"<fmpz_poly.h>": 1,
"<fmpz.h>": 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"
}

89
samples/C/ntru_encrypt.h Normal file
View File

@@ -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 <fmpz_poly.h>
#include <fmpz.h>
/**
* 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 */