Merge branch 'master' of gitlab-gepasp.in.tum.de:gra22s/team199
This commit is contained in:
commit
e2825eeae7
4 changed files with 25 additions and 30 deletions
|
@ -9,7 +9,8 @@ ifeq ($(DETAILED_BENCHMARK), true)
|
||||||
CFLAGS += -DMD2_DETAILED_BENCHMARK
|
CFLAGS += -DMD2_DETAILED_BENCHMARK
|
||||||
endif
|
endif
|
||||||
LDFLAGS = -pthread
|
LDFLAGS = -pthread
|
||||||
TESTFILES = t/1 t/2 t/5 t/10 t/20 t/50 t/100 t/1000 t/2000 t/5000 t/10000
|
#TESTFILES = t/1 t/2 t/5 t/7 t/10 t/25 t/50 t/75 t/100 t/250 t/500 t/750 t/1000 t/1500 t/2000 t/2500 t/3000 t/3500 t/4000 t/4500 t/5000 t/5500
|
||||||
|
TESTFILES = t/6000 t/6500 t/7000 t/7500 t/8000 t/8500 t/9000 t/9500 t/10000
|
||||||
TESTFILES_SIZES = ${subst t/,,${TESTFILES}}
|
TESTFILES_SIZES = ${subst t/,,${TESTFILES}}
|
||||||
BLUE=\033[1;36m
|
BLUE=\033[1;36m
|
||||||
RED=\033[1;31m
|
RED=\033[1;31m
|
||||||
|
@ -56,7 +57,7 @@ benchmarks.csv: md2 ${TESTFILES}
|
||||||
done
|
done
|
||||||
@echo "" >> $@
|
@echo "" >> $@
|
||||||
|
|
||||||
@for i in 0 1 2 3 4; do \
|
@for i in 4; do \
|
||||||
echo ;\
|
echo ;\
|
||||||
echo -e "${BLUE}=== Testing implementation $$i ===${NC}";\
|
echo -e "${BLUE}=== Testing implementation $$i ===${NC}";\
|
||||||
echo -n "Implementierung-$$i" >> $@; \
|
echo -n "Implementierung-$$i" >> $@; \
|
||||||
|
|
|
@ -1,6 +1,2 @@
|
||||||
Implementierung;1;2;5;10;20;50;100
|
Implementierung;1;2;5;7;10;25;50;75;100;250;500;750;1000;1500;2000;2500;3000;3500;4000;4500;5000;5500
|
||||||
Implementierung-0;0.092604;0.172133;0.422083;0.845732;1.687540;4.232703;8.501036
|
Implementierung-4;0.179950;0.308132;0.768091;1.077839;1.793499;3.786488;7.788925;11.049307;15.051300;37.564573;74.324851;112.160912;150.740498;225.111342;305.938520;381.063308;463.611798;533.670234;614.535749;63.418839;137.076754;292.555679
|
||||||
Implementierung-1;0.084314;0.167799;0.431772;0.843568;1.708024;5.208127;10.147011
|
|
||||||
Implementierung-2;0.097700;0.203661;0.567091;1.062895;2.141933;5.440520;10.342529
|
|
||||||
Implementierung-3;0.099547;0.206932;0.546978;1.017148;2.077730;5.067994;9.962873
|
|
||||||
Implementierung-4;0.117680;0.239349;0.616783;1.200482;2.356915;5.856234;11.647842
|
|
||||||
|
|
|
|
@ -8,6 +8,13 @@
|
||||||
* Quelle: https://datatracker.ietf.org/doc/html/rfc1319
|
* Quelle: https://datatracker.ietf.org/doc/html/rfc1319
|
||||||
**********************************************************/
|
**********************************************************/
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
|
||||||
#ifndef PROTOTYPES
|
#ifndef PROTOTYPES
|
||||||
#define PROTOTYPES 0
|
#define PROTOTYPES 0
|
||||||
#endif
|
#endif
|
||||||
|
@ -34,23 +41,14 @@ typedef unsigned long int UINT4;
|
||||||
typedef struct {
|
typedef struct {
|
||||||
unsigned char state[16]; /* state */
|
unsigned char state[16]; /* state */
|
||||||
unsigned char checksum[16]; /* checksum */
|
unsigned char checksum[16]; /* checksum */
|
||||||
unsigned int count; /* number of bytes, modulo 16 */
|
size_t count; /* number of bytes, modulo 16 */
|
||||||
unsigned char buffer[16]; /* input buffer */
|
unsigned char buffer[16]; /* input buffer */
|
||||||
} MD2_CTX;
|
} MD2_CTX;
|
||||||
|
|
||||||
void MD2Init PROTO_LIST((MD2_CTX *));
|
void MD2Init PROTO_LIST((MD2_CTX *));
|
||||||
void MD2Update PROTO_LIST((MD2_CTX *, unsigned char *, unsigned int));
|
void MD2Update PROTO_LIST((MD2_CTX *, unsigned char *, size_t));
|
||||||
void MD2Final PROTO_LIST((unsigned char[16], MD2_CTX *));
|
void MD2Final PROTO_LIST((unsigned char[16], MD2_CTX *));
|
||||||
|
|
||||||
#include <stdbool.h>
|
|
||||||
#include <stdint.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
|
|
||||||
#include "../md2_common.h"
|
|
||||||
|
|
||||||
void md2_hash_ref(size_t len, const uint8_t buf[len], uint8_t out[16]);
|
void md2_hash_ref(size_t len, const uint8_t buf[len], uint8_t out[16]);
|
||||||
|
|
||||||
#endif // MD2_REF_H
|
#endif // MD2_REF_H
|
|
@ -30,8 +30,8 @@
|
||||||
|
|
||||||
static void MD2Transform PROTO_LIST((unsigned char[16], unsigned char[16],
|
static void MD2Transform PROTO_LIST((unsigned char[16], unsigned char[16],
|
||||||
unsigned char[16]));
|
unsigned char[16]));
|
||||||
static void MD2_memcpy PROTO_LIST((POINTER, POINTER, unsigned int));
|
static void MD2_memcpy PROTO_LIST((POINTER, POINTER, size_t));
|
||||||
static void MD2_memset PROTO_LIST((POINTER, int, unsigned int));
|
static void MD2_memset PROTO_LIST((POINTER, int, size_t));
|
||||||
|
|
||||||
/* Permutation of 0..255 constructed from the digits of pi. It gives a
|
/* Permutation of 0..255 constructed from the digits of pi. It gives a
|
||||||
"random" nonlinear byte substitution operation.
|
"random" nonlinear byte substitution operation.
|
||||||
|
@ -101,9 +101,9 @@ void MD2Init(context) MD2_CTX *context; /* context */
|
||||||
*/
|
*/
|
||||||
void MD2Update(context, input, inputLen) MD2_CTX *context; /* context */
|
void MD2Update(context, input, inputLen) MD2_CTX *context; /* context */
|
||||||
unsigned char *input; /* input block */
|
unsigned char *input; /* input block */
|
||||||
unsigned int inputLen; /* length of input block */
|
size_t inputLen; /* length of input block */
|
||||||
{
|
{
|
||||||
unsigned int i, index, partLen;
|
size_t i, index, partLen;
|
||||||
|
|
||||||
/* Update number of bytes mod 16 */
|
/* Update number of bytes mod 16 */
|
||||||
index = context->count;
|
index = context->count;
|
||||||
|
@ -137,7 +137,7 @@ void MD2Final(digest, context)
|
||||||
unsigned char digest[16]; /* message digest */
|
unsigned char digest[16]; /* message digest */
|
||||||
MD2_CTX *context; /* context */
|
MD2_CTX *context; /* context */
|
||||||
{
|
{
|
||||||
unsigned int index, padLen;
|
size_t index, padLen;
|
||||||
|
|
||||||
/* Pad out to multiple of 16.
|
/* Pad out to multiple of 16.
|
||||||
*/
|
*/
|
||||||
|
@ -163,7 +163,7 @@ static void MD2Transform(state, checksum, block) unsigned char state[16];
|
||||||
unsigned char checksum[16];
|
unsigned char checksum[16];
|
||||||
unsigned char block[16];
|
unsigned char block[16];
|
||||||
{
|
{
|
||||||
unsigned int i, j, t;
|
size_t i, j, t;
|
||||||
unsigned char x[48];
|
unsigned char x[48];
|
||||||
|
|
||||||
/* Form encryption block from state, block, state ^ block.
|
/* Form encryption block from state, block, state ^ block.
|
||||||
|
@ -203,9 +203,9 @@ unsigned char block[16];
|
||||||
*/
|
*/
|
||||||
static void MD2_memcpy(output, input, len) POINTER output;
|
static void MD2_memcpy(output, input, len) POINTER output;
|
||||||
POINTER input;
|
POINTER input;
|
||||||
unsigned int len;
|
size_t len;
|
||||||
{
|
{
|
||||||
unsigned int i;
|
size_t i;
|
||||||
|
|
||||||
for (i = 0; i < len; i++) output[i] = input[i];
|
for (i = 0; i < len; i++) output[i] = input[i];
|
||||||
}
|
}
|
||||||
|
@ -214,9 +214,9 @@ unsigned int len;
|
||||||
*/
|
*/
|
||||||
static void MD2_memset(output, value, len) POINTER output;
|
static void MD2_memset(output, value, len) POINTER output;
|
||||||
int value;
|
int value;
|
||||||
unsigned int len;
|
size_t len;
|
||||||
{
|
{
|
||||||
unsigned int i;
|
size_t i;
|
||||||
|
|
||||||
for (i = 0; i < len; i++) ((char *)output)[i] = (char)value;
|
for (i = 0; i < len; i++) ((char *)output)[i] = (char)value;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue