提交 19f7e5e2 编写于 作者: B Ben Laurie

Missing declarations, no assembler in PEDANTIC.

上级 bb92e2c8
...@@ -83,7 +83,7 @@ typedef struct { u64 hi,lo; } u128; ...@@ -83,7 +83,7 @@ typedef struct { u64 hi,lo; } u128;
# undef STRICT_ALIGNMENT # undef STRICT_ALIGNMENT
#endif #endif
#if defined(__GNUC__) && __GNUC__>=2 #if defined(__GNUC__) && __GNUC__>=2 && !defined(PEDANTIC)
# if defined(__x86_64) || defined(__x86_64__) # if defined(__x86_64) || defined(__x86_64__)
# define BSWAP8(x) ({ u64 ret=(x); \ # define BSWAP8(x) ({ u64 ret=(x); \
asm volatile ("bswapq %0" \ asm volatile ("bswapq %0" \
...@@ -91,7 +91,7 @@ typedef struct { u64 hi,lo; } u128; ...@@ -91,7 +91,7 @@ typedef struct { u64 hi,lo; } u128;
# define BSWAP4(x) ({ u32 ret=(x); \ # define BSWAP4(x) ({ u32 ret=(x); \
asm volatile ("bswapl %0" \ asm volatile ("bswapl %0" \
: "+r"(ret)); ret; }) : "+r"(ret)); ret; })
# elif defined(__i386) || defined(__i386__) # elif (defined(__i386) || defined(__i386__)) && !defined(PEDANTIC)
# define BSWAP8(x) ({ u32 lo=(u64)(x)>>32,hi=(x); \ # define BSWAP8(x) ({ u32 lo=(u64)(x)>>32,hi=(x); \
asm volatile ("bswapl %0; bswapl %1" \ asm volatile ("bswapl %0; bswapl %1" \
: "+r"(hi),"+r"(lo)); \ : "+r"(hi),"+r"(lo)); \
...@@ -565,7 +565,7 @@ static void gcm_gmult_1bit(u64 Xi[2],const u64 H[2]) ...@@ -565,7 +565,7 @@ static void gcm_gmult_1bit(u64 Xi[2],const u64 H[2])
#endif #endif
typedef struct { struct gcm128_context {
/* Following 6 names follow names in GCM specification */ /* Following 6 names follow names in GCM specification */
union { u64 u[2]; u32 d[4]; u8 c[16]; } Yi,EKi,EK0, union { u64 u[2]; u32 d[4]; u8 c[16]; } Yi,EKi,EK0,
Xi,H, Xi,H,
...@@ -579,7 +579,7 @@ typedef struct { ...@@ -579,7 +579,7 @@ typedef struct {
unsigned int res, ctr; unsigned int res, ctr;
block128_f block; block128_f block;
void *key; void *key;
} GCM128_CONTEXT; };
void CRYPTO_gcm128_init(GCM128_CONTEXT *ctx,void *key,block128_f block) void CRYPTO_gcm128_init(GCM128_CONTEXT *ctx,void *key,block128_f block)
{ {
......
...@@ -70,3 +70,18 @@ size_t CRYPTO_nistcts128_decrypt_block(const unsigned char *in, unsigned char *o ...@@ -70,3 +70,18 @@ size_t CRYPTO_nistcts128_decrypt_block(const unsigned char *in, unsigned char *o
size_t CRYPTO_nistcts128_decrypt(const unsigned char *in, unsigned char *out, size_t CRYPTO_nistcts128_decrypt(const unsigned char *in, unsigned char *out,
size_t len, const void *key, size_t len, const void *key,
unsigned char ivec[16], cbc128_f cbc); unsigned char ivec[16], cbc128_f cbc);
typedef struct gcm128_context GCM128_CONTEXT;
void CRYPTO_gcm128_init(GCM128_CONTEXT *ctx, void *key, block128_f block);
void CRYPTO_gcm128_setiv(GCM128_CONTEXT *ctx, const unsigned char *iv,
size_t len);
void CRYPTO_gcm128_aad(GCM128_CONTEXT *ctx, const unsigned char *aad,
size_t len);
void CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx,
const unsigned char *in, unsigned char *out,
size_t len);
void CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx,
const unsigned char *in, unsigned char *out,
size_t len);
void CRYPTO_gcm128_finish(GCM128_CONTEXT *ctx);
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册