X-Git-Url: https://git.cryptolib.org/?a=blobdiff_plain;f=rc6.h;h=429a1d39bd8942e2ca252393b5e1223bd8f3c7a0;hb=8f855d283a31a468ea014774c4723a8b77b81644;hp=35887bc44be8ae900fbc5ed07e2c653274b82a18;hpb=083d7d2a1375304e61c08048426a80e2cc41c55d;p=avr-crypto-lib.git diff --git a/rc6.h b/rc6.h index 35887bc..429a1d3 100644 --- a/rc6.h +++ b/rc6.h @@ -1,3 +1,21 @@ +/* rc6.h */ +/* + This file is part of the AVR-Crypto-Lib. + Copyright (C) 2008 Daniel Otte (daniel.otte@rub.de) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ /* * File: rc6.h * Author: Daniel Otte @@ -7,22 +25,28 @@ * This implementation is restricted to 32-bit words, but free in the choice of number of rounds (0 to 255). * so it is RC6-32/r/b */ + +#ifndef RC6_H_ +#define RC6_H_ + - #include +#include - typedef struct rc6_ctx_st{ - uint8_t rounds; /* specifys the number of rounds; default: 20 */ +typedef struct rc6_ctx_st{ + uint8_t rounds; /* specifys the number of rounds; default: 20 */ uint32_t* S; /* the round-keys */ - } rc6_ctx_t; - +} rc6_ctx_t; - uint8_t rc6_init(rc6_ctx_t *s,void* key, uint16_t keylength); - uint8_t rc6_initl(rc6_ctx_t *s,void* key, uint16_t keylength, uint8_t rounds); +uint8_t rc6_init(void* key, uint16_t keylength_b, rc6_ctx_t *s); - void rc6_enc(rc6_ctx_t *s, void* block); +uint8_t rc6_initl(void* key, uint16_t keylength_b, uint8_t rounds, rc6_ctx_t *s); - void rc6_dec(rc6_ctx_t *s, void* block); +void rc6_enc(void* block, rc6_ctx_t *s); + +void rc6_dec(void* block, rc6_ctx_t *s); - void rc6_free(rc6_ctx_t *s); +void rc6_free(rc6_ctx_t *s); + +#endif /* RC6_H_ */