mirror of
https://github.com/guanzhi/GmSSL.git
synced 2026-05-07 00:46:17 +08:00
[bugfix] fix bitslice bug
This commit is contained in:
@@ -1,55 +0,0 @@
|
||||
|
||||
#define SMS4_NUM_ROUNDS_BS 32
|
||||
typedef struct
|
||||
{
|
||||
unsigned __int64 rkh[SMS4_NUM_ROUNDS_BS][4];
|
||||
unsigned __int64 rkl[SMS4_NUM_ROUNDS_BS][4];
|
||||
} sms4_key_t_bs;
|
||||
|
||||
|
||||
#define FK_BS00h (0xaaaaaaaaaaaaaaaa)
|
||||
#define FK_BS00l (0x3333333333333333)
|
||||
#define FK_BS01h (0xbbbbbbbbbbbbbbbb)
|
||||
#define FK_BS01l (0x1111111111111111)
|
||||
#define FK_BS02h (0xbbbbbbbbbbbbbbbb)
|
||||
#define FK_BS02l (0xaaaaaaaaaaaaaaaa)
|
||||
#define FK_BS03h (0xcccccccccccccccc)
|
||||
#define FK_BS03l (0x6666666666666666)
|
||||
|
||||
#define FK_BS10h (0x5555555555555555)
|
||||
#define FK_BS10l (0x6666666666666666)
|
||||
#define FK_BS11h (0xaaaaaaaaaaaaaaaa)
|
||||
#define FK_BS11l (0xaaaaaaaaaaaaaaaa)
|
||||
#define FK_BS12h (0x3333333333333333)
|
||||
#define FK_BS12l (0x3333333333333333)
|
||||
#define FK_BS13h (0x5555555555555555)
|
||||
#define FK_BS13l (0x0000000000000000)
|
||||
//0x677d9197, 0xb27022dc,
|
||||
#define FK_BS20h (0x6666666666666666)
|
||||
#define FK_BS20l (0x7777777777777777)
|
||||
#define FK_BS21h (0x7777777777777777)
|
||||
#define FK_BS21l (0xdddddddddddddddd)
|
||||
#define FK_BS22h (0x9999999999999999)
|
||||
#define FK_BS22l (0x1111111111111111)
|
||||
#define FK_BS23h (0x9999999999999999)
|
||||
#define FK_BS23l (0x7777777777777777)
|
||||
|
||||
#define FK_BS30h (0xbbbbbbbbbbbbbbbb)
|
||||
#define FK_BS30l (0x2222222222222222)
|
||||
#define FK_BS31h (0x7777777777777777)
|
||||
#define FK_BS31l (0x0000000000000000)
|
||||
#define FK_BS32h (0x2222222222222222)
|
||||
#define FK_BS32l (0x2222222222222222)
|
||||
#define FK_BS33h (0xdddddddddddddddd)
|
||||
#define FK_BS33l (0xcccccccccccccccc)
|
||||
|
||||
void sms4_set_encrypt_key_bs(sms4_key_t_bs *key,unsigned __int64 *user_keyh,unsigned __int64 *user_keyl);
|
||||
void SMS4_encrypt_bs(sms4_key_t_bs *key,unsigned __int64 *INh,unsigned __int64 *INl,unsigned __int64 *OUTh,unsigned __int64 *OUTl);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
#include "sm4_bs.h"
|
||||
|
||||
unsigned __int64 ukeyh[16]={0x0000000000000000,0x2222222222222222,0x4444444444444444,0x6666666666666666,0x8888888888888888,0xAAAAAAAAAAAAAAAA,0xCCCCCCCCCCCCCCCC,0xEEEEEEEEEEEEEEEE,0xFFFFFFFFFFFFFFFF,0xDDDDDDDDDDDDDDDD,0xBBBBBBBBBBBBBBBB,0x9999999999999999,0x7777777777777777,0x5555555555555555,0x3333333333333333,0x1111111111111111};
|
||||
unsigned __int64 ukeyl[16]={0x1111111111111111,0x3333333333333333,0x5555555555555555,0x7777777777777777,0x9999999999999999,0xBBBBBBBBBBBBBBBB,0xDDDDDDDDDDDDDDDD,0xFFFFFFFFFFFFFFFF,0xEEEEEEEEEEEEEEEE,0xCCCCCCCCCCCCCCCC,0xAAAAAAAAAAAAAAAA,0x8888888888888888,0x6666666666666666,0x4444444444444444,0x2222222222222222,0x0000000000000000};
|
||||
unsigned __int64 inh[16]={0x0000000000000000,0x2222222222222222,0x4444444444444444,0x6666666666666666,0x8888888888888888,0xAAAAAAAAAAAAAAAA,0xCCCCCCCCCCCCCCCC,0xEEEEEEEEEEEEEEEE,0xFFFFFFFFFFFFFFFF,0xDDDDDDDDDDDDDDDD,0xBBBBBBBBBBBBBBBB,0x9999999999999999,0x7777777777777777,0x5555555555555555,0x3333333333333333,0x1111111111111111};
|
||||
unsigned __int64 inl[16]={0x1111111111111111,0x3333333333333333,0x5555555555555555,0x7777777777777777,0x9999999999999999,0xBBBBBBBBBBBBBBBB,0xDDDDDDDDDDDDDDDD,0xFFFFFFFFFFFFFFFF,0xEEEEEEEEEEEEEEEE,0xCCCCCCCCCCCCCCCC,0xAAAAAAAAAAAAAAAA,0x8888888888888888,0x6666666666666666,0x4444444444444444,0x2222222222222222,0x0000000000000000};
|
||||
|
||||
void main()
|
||||
{
|
||||
clock_t t1,t2;
|
||||
unsigned int p;
|
||||
int i,j;
|
||||
sms4_key_t_bs keybs;
|
||||
|
||||
printf("pai:\n");
|
||||
scanf("%d",&p);
|
||||
sms4_set_encrypt_key_bs(&keybs,ukeyh,ukeyl);
|
||||
t1 = clock();
|
||||
for(i=0;i<p;i++)
|
||||
{
|
||||
SMS4_encrypt_bs(&keybs,inh,inl,inh,inl);
|
||||
}
|
||||
t2 = clock();
|
||||
printf(" %f %f %f B/s\n",(double)(t2-t1)/CLOCKS_PER_SEC,(16.0*p)/((double)(t2-t1)/CLOCKS_PER_SEC),(16.0*p*16)/((double)(t2-t1)/CLOCKS_PER_SEC));
|
||||
for(j=0;j<16;j++){for(i=0;i<16;i++){printf("%x%x,",(unsigned char)(inh[i]>>j*4)&0xf,(unsigned char)(inl[i]>>j*4)&0xf);}printf("\n");}
|
||||
//68,1e,df,34,d2,06,96,5e,86,b3,e9,4f,53,6e,42,46,
|
||||
}
|
||||
Reference in New Issue
Block a user