以下に示すようなコードがあります。ここのコードは、word_size = 64
. 同様に、32 と 16 も必要です。encrypt
すべてのサイズで同じ関数を再利用する方法が見つかりません。さらに、word_size に従って変数も宣言する必要があります。uint_16
またはuint_32
またはのどちらを使用するかuint_64
は、word_size によって異なります。この場合、再利用可能なコードを書くのを手伝ってもらえますか?
#include<stdio.h>
#include<stdint.h>
void encrypt(uint64_t* , uint64_t*, uint64_t*);
int main(){
int block_size;
// Get the user inputs
printf("input the block size: \n");
scanf("%d", &block_size); // can be 32, 64 or 128
int word_size = block_size/2; // 16,32 or 64
// Depending on the word_size, I should declare the variables with
// corresponding width
uint64_t plain_text[2] = {0,0};
uint64_t cipher_text[2] = {0,0};
uint64_t key_text[2] = {0,0};
uint64_t * pt, *ct, *k;
encrypt(pt, ct,k);
}
/*
* Ecnryption Method
*/
void encrypt(uint64_t* pt, uint64_t* ct, uint64_t* k){
// Involves bit shifting algorithm which works only on exact sizes i.e eiter 16,32 or 64.
}
必要に応じて、さらに情報を提供できます。