mirror of
https://github.com/rvtr/ntr_bootrom.git
synced 2025-10-31 07:11:11 -04:00
45 lines
1.7 KiB
C
45 lines
1.7 KiB
C
//======================================================================
|
|
// IRIS-SUBPモニタプログラム Blowfish関数
|
|
//======================================================================
|
|
#ifndef _IRIS_SUBP_BLOWFISH_H
|
|
#define _IRIS_SUBP_BLOWFISH_H
|
|
|
|
#include "IrisSubpMonTarget.h"
|
|
|
|
|
|
typedef struct {
|
|
unsigned int P[16 + 2];
|
|
unsigned int S[4][256];
|
|
} BLOWFISH_CTX;
|
|
|
|
|
|
void InitBlowfish(BLOWFISH_CTX *ctx, const unsigned char *key, int keyLen);
|
|
void EncryptByBlowfish(const BLOWFISH_CTX *ctx, unsigned int *xl, unsigned int *xr);
|
|
void DecryptByBlowfish(const BLOWFISH_CTX *ctx, unsigned int *xl, unsigned int *xr);
|
|
#ifndef DISABLE_SECURE_CODE
|
|
void InitBlowfishFook(BLOWFISH_CTX *ctx, const unsigned char *key, int keyLen);
|
|
void EncryptByBlowfishFook0(const BLOWFISH_CTX *ctx, unsigned int *xl, unsigned int *xr);
|
|
void EncryptByBlowfishFook1(const BLOWFISH_CTX *ctx, unsigned int *x);
|
|
void EncryptByBlowfishFook2(const BLOWFISH_CTX *ctx, unsigned int *x);
|
|
void DecryptByBlowfishFook(const BLOWFISH_CTX *ctx, unsigned int *x);
|
|
#else
|
|
#define InitBlowfishFook() InitBlowfish()
|
|
#define EncryptByBlowfishFook0(ctx, xl, xr) EncryptByBlowfish(ctx, xl, xr)
|
|
#define EncryptByBlowfishFook1(ctx, x) EncryptByBlowfish(ctx, &(x)[1], &(x)[0])
|
|
#define EncryptByBlowfishFook2(ctx, x) EncryptByBlowfish(ctx, &(x)[2], &(x)[1])
|
|
#define DecryptByBlowfishFook(ctx, x) DecryptByBlowfish(ctx, &(x)[1], &(x)[0])
|
|
#endif // DISABLE_SECURE_CODE
|
|
|
|
|
|
#ifndef ENABLE_TEST_BLOWFISH
|
|
|
|
extern const BLOWFISH_CTX blowfishInitTable; // 初期化テーブル
|
|
#else
|
|
extern const BLOWFISH_CTX blowfishTestTable; // (テスト版)
|
|
|
|
#endif // ENABLE_TEST_BLOWFISH
|
|
|
|
|
|
|
|
#endif // _IRIS_SUBP_BLOWFISH_H
|