Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
rc6.h
00001 /** 00002 * @file rc6.h 00003 * @brief RC6-32/20 block cipher 00004 * 00005 * @section License 00006 * 00007 * Copyright (C) 2010-2017 Oryx Embedded SARL. All rights reserved. 00008 * 00009 * This file is part of CycloneCrypto Open. 00010 * 00011 * This program is free software; you can redistribute it and/or 00012 * modify it under the terms of the GNU General Public License 00013 * as published by the Free Software Foundation; either version 2 00014 * of the License, or (at your option) any later version. 00015 * 00016 * This program is distributed in the hope that it will be useful, 00017 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00018 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00019 * GNU General Public License for more details. 00020 * 00021 * You should have received a copy of the GNU General Public License 00022 * along with this program; if not, write to the Free Software Foundation, 00023 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 00024 * 00025 * @author Oryx Embedded SARL (www.oryx-embedded.com) 00026 * @version 1.7.6 00027 **/ 00028 00029 #ifndef _RC6_H 00030 #define _RC6_H 00031 00032 //Dependencies 00033 #include "crypto.h" 00034 00035 //RC6 block size 00036 #define RC6_BLOCK_SIZE 16 00037 //Maximum length of the encryption key in bytes 00038 #define RC6_MAX_KEY_SIZE 32 00039 //Number of rounds 00040 #define RC6_NB_ROUNDS 20 00041 00042 //Common interface for encryption algorithms 00043 #define RC6_CIPHER_ALGO (&rc6CipherAlgo) 00044 00045 00046 /** 00047 * @brief RC6 algorithm context 00048 **/ 00049 00050 typedef struct 00051 { 00052 uint32_t l[RC6_MAX_KEY_SIZE / 4]; 00053 uint32_t s[2 * RC6_NB_ROUNDS + 4]; 00054 } Rc6Context; 00055 00056 00057 //RC6 related constants 00058 extern const CipherAlgo rc6CipherAlgo; 00059 00060 //RC6 related functions 00061 error_t rc6Init(Rc6Context *context, const uint8_t *key, size_t keyLength); 00062 void rc6EncryptBlock(Rc6Context *context, const uint8_t *input, uint8_t *output); 00063 void rc6DecryptBlock(Rc6Context *context, const uint8_t *input, uint8_t *output); 00064 00065 #endif 00066
Generated on Tue Jul 12 2022 17:10:15 by
1.7.2