Remove tab characters from C source files.
Some have been creeping into the source code. Reviewed-by: Paul Yang <yang.yang@baishancloud.com> (Merged from https://github.com/openssl/openssl/pull/9397)
This commit is contained in:
parent
e3a0d36729
commit
dd6b270618
20 changed files with 227 additions and 227 deletions
|
@ -3104,7 +3104,7 @@ int s_client_main(int argc, char **argv)
|
||||||
BIO_printf(bio_err, "RENEGOTIATING\n");
|
BIO_printf(bio_err, "RENEGOTIATING\n");
|
||||||
SSL_renegotiate(con);
|
SSL_renegotiate(con);
|
||||||
cbuf_len = 0;
|
cbuf_len = 0;
|
||||||
} else if (!c_ign_eof && (cbuf[0] == 'K' || cbuf[0] == 'k' )
|
} else if (!c_ign_eof && (cbuf[0] == 'K' || cbuf[0] == 'k' )
|
||||||
&& cmdletters) {
|
&& cmdletters) {
|
||||||
BIO_printf(bio_err, "KEYUPDATE\n");
|
BIO_printf(bio_err, "KEYUPDATE\n");
|
||||||
SSL_key_update(con,
|
SSL_key_update(con,
|
||||||
|
|
|
@ -238,8 +238,8 @@ int TerminalSocket (int FunctionCode, int *ReturnSocket)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Deassign the terminal channel
|
** Deassign the terminal channel
|
||||||
*/
|
*/
|
||||||
status = sys$dassgn (TerminalDeviceChan);
|
status = sys$dassgn (TerminalDeviceChan);
|
||||||
if (! (status & 1)) {
|
if (! (status & 1)) {
|
||||||
LogMessage ("TerminalSocket: SYS$DASSGN () - %08X", status);
|
LogMessage ("TerminalSocket: SYS$DASSGN () - %08X", status);
|
||||||
|
@ -255,15 +255,15 @@ int TerminalSocket (int FunctionCode, int *ReturnSocket)
|
||||||
close (TerminalSocketPair[1]);
|
close (TerminalSocketPair[1]);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Return the initialized socket
|
** Return the initialized socket
|
||||||
*/
|
*/
|
||||||
*ReturnSocket = 0;
|
*ReturnSocket = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
/*
|
/*
|
||||||
** Invalid function code
|
** Invalid function code
|
||||||
*/
|
*/
|
||||||
LogMessage ("TerminalSocket: Invalid Function Code - %d", FunctionCode);
|
LogMessage ("TerminalSocket: Invalid Function Code - %d", FunctionCode);
|
||||||
return TERM_SOCK_FAILURE;
|
return TERM_SOCK_FAILURE;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -1007,7 +1007,7 @@ static void sl2(ARIA_c128 o, const ARIA_u128 *x, const ARIA_u128 *y)
|
||||||
{
|
{
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
for (i = 0; i < ARIA_BLOCK_SIZE; i += 4) {
|
for (i = 0; i < ARIA_BLOCK_SIZE; i += 4) {
|
||||||
o[i ] = sb3[x->c[i ] ^ y->c[i ]];
|
o[i ] = sb3[x->c[i ] ^ y->c[i ]];
|
||||||
o[i + 1] = sb4[x->c[i + 1] ^ y->c[i + 1]];
|
o[i + 1] = sb4[x->c[i + 1] ^ y->c[i + 1]];
|
||||||
o[i + 2] = sb1[x->c[i + 2] ^ y->c[i + 2]];
|
o[i + 2] = sb1[x->c[i + 2] ^ y->c[i + 2]];
|
||||||
o[i + 3] = sb2[x->c[i + 3] ^ y->c[i + 3]];
|
o[i + 3] = sb2[x->c[i + 3] ^ y->c[i + 3]];
|
||||||
|
|
|
@ -84,7 +84,7 @@ static variant_char *ossl_strchr(const variant_char *str, char srch)
|
||||||
|
|
||||||
while((c = *str)) {
|
while((c = *str)) {
|
||||||
if (c == srch)
|
if (c == srch)
|
||||||
return (variant_char *)str;
|
return (variant_char *)str;
|
||||||
str++;
|
str++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -501,9 +501,9 @@ struct smvt_control {
|
||||||
};
|
};
|
||||||
|
|
||||||
#if defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 3))
|
#if defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 3))
|
||||||
# define NUMTRAILINGZEROS __builtin_ctz
|
# define NUMTRAILINGZEROS __builtin_ctz
|
||||||
#else
|
#else
|
||||||
# define NUMTRAILINGZEROS numtrailingzeros
|
# define NUMTRAILINGZEROS numtrailingzeros
|
||||||
static uint32_t numtrailingzeros(uint32_t i)
|
static uint32_t numtrailingzeros(uint32_t i)
|
||||||
{
|
{
|
||||||
uint32_t tmp;
|
uint32_t tmp;
|
||||||
|
|
|
@ -945,7 +945,7 @@ typedef struct {
|
||||||
static int s390x_aes_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
|
static int s390x_aes_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
|
||||||
const unsigned char *iv, int enc);
|
const unsigned char *iv, int enc);
|
||||||
|
|
||||||
# define S390X_AES_CBC_CTX EVP_AES_KEY
|
# define S390X_AES_CBC_CTX EVP_AES_KEY
|
||||||
|
|
||||||
# define s390x_aes_cbc_init_key aes_init_key
|
# define s390x_aes_cbc_init_key aes_init_key
|
||||||
|
|
||||||
|
@ -1132,7 +1132,7 @@ static int s390x_aes_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
||||||
static int s390x_aes_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
static int s390x_aes_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
||||||
const unsigned char *in, size_t len);
|
const unsigned char *in, size_t len);
|
||||||
|
|
||||||
# define S390X_AES_CTR_CTX EVP_AES_KEY
|
# define S390X_AES_CTR_CTX EVP_AES_KEY
|
||||||
|
|
||||||
# define s390x_aes_ctr_init_key aes_init_key
|
# define s390x_aes_ctr_init_key aes_init_key
|
||||||
|
|
||||||
|
@ -1141,7 +1141,7 @@ static int s390x_aes_ctr_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
||||||
const unsigned char *in, size_t len);
|
const unsigned char *in, size_t len);
|
||||||
|
|
||||||
/* iv + padding length for iv lengths != 12 */
|
/* iv + padding length for iv lengths != 12 */
|
||||||
# define S390X_gcm_ivpadlen(i) ((((i) + 15) >> 4 << 4) + 16)
|
# define S390X_gcm_ivpadlen(i) ((((i) + 15) >> 4 << 4) + 16)
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Process additional authenticated data. Returns 0 on success. Code is
|
* Process additional authenticated data. Returns 0 on success. Code is
|
||||||
|
@ -1662,7 +1662,7 @@ static int s390x_aes_gcm_cleanup(EVP_CIPHER_CTX *c)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
# define S390X_AES_XTS_CTX EVP_AES_XTS_CTX
|
# define S390X_AES_XTS_CTX EVP_AES_XTS_CTX
|
||||||
|
|
||||||
# define s390x_aes_xts_init_key aes_xts_init_key
|
# define s390x_aes_xts_init_key aes_xts_init_key
|
||||||
static int s390x_aes_xts_init_key(EVP_CIPHER_CTX *ctx,
|
static int s390x_aes_xts_init_key(EVP_CIPHER_CTX *ctx,
|
||||||
|
@ -1787,13 +1787,13 @@ static int s390x_aes_ccm(S390X_AES_CCM_CTX *ctx, const unsigned char *in,
|
||||||
ctx->aes.ccm.nonce.b[15] = 1;
|
ctx->aes.ccm.nonce.b[15] = 1;
|
||||||
|
|
||||||
if (n != len)
|
if (n != len)
|
||||||
return -1; /* length mismatch */
|
return -1; /* length mismatch */
|
||||||
|
|
||||||
if (enc) {
|
if (enc) {
|
||||||
/* Two operations per block plus one for tag encryption */
|
/* Two operations per block plus one for tag encryption */
|
||||||
ctx->aes.ccm.blocks += (((len + 15) >> 4) << 1) + 1;
|
ctx->aes.ccm.blocks += (((len + 15) >> 4) << 1) + 1;
|
||||||
if (ctx->aes.ccm.blocks > (1ULL << 61))
|
if (ctx->aes.ccm.blocks > (1ULL << 61))
|
||||||
return -2; /* too much data */
|
return -2; /* too much data */
|
||||||
}
|
}
|
||||||
|
|
||||||
num = 0;
|
num = 0;
|
||||||
|
@ -1842,7 +1842,7 @@ static int s390x_aes_ccm(S390X_AES_CCM_CTX *ctx, const unsigned char *in,
|
||||||
ctx->aes.ccm.kmac_param.icv.g[0] ^= ctx->aes.ccm.buf.g[0];
|
ctx->aes.ccm.kmac_param.icv.g[0] ^= ctx->aes.ccm.buf.g[0];
|
||||||
ctx->aes.ccm.kmac_param.icv.g[1] ^= ctx->aes.ccm.buf.g[1];
|
ctx->aes.ccm.kmac_param.icv.g[1] ^= ctx->aes.ccm.buf.g[1];
|
||||||
|
|
||||||
ctx->aes.ccm.nonce.b[0] = flags; /* restore flags field */
|
ctx->aes.ccm.nonce.b[0] = flags; /* restore flags field */
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2146,7 +2146,7 @@ static int s390x_aes_ccm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
|
||||||
# define s390x_aes_ccm_cleanup aes_ccm_cleanup
|
# define s390x_aes_ccm_cleanup aes_ccm_cleanup
|
||||||
|
|
||||||
# ifndef OPENSSL_NO_OCB
|
# ifndef OPENSSL_NO_OCB
|
||||||
# define S390X_AES_OCB_CTX EVP_AES_OCB_CTX
|
# define S390X_AES_OCB_CTX EVP_AES_OCB_CTX
|
||||||
|
|
||||||
# define s390x_aes_ocb_init_key aes_ocb_init_key
|
# define s390x_aes_ocb_init_key aes_ocb_init_key
|
||||||
static int s390x_aes_ocb_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
|
static int s390x_aes_ocb_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
|
||||||
|
@ -2169,77 +2169,77 @@ static int s390x_aes_ocb_ctrl(EVP_CIPHER_CTX *, int type, int arg, void *ptr);
|
||||||
# define s390x_aes_siv_ctrl aes_siv_ctrl
|
# define s390x_aes_siv_ctrl aes_siv_ctrl
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# define BLOCK_CIPHER_generic(nid,keylen,blocksize,ivlen,nmode,mode, \
|
# define BLOCK_CIPHER_generic(nid,keylen,blocksize,ivlen,nmode,mode, \
|
||||||
MODE,flags) \
|
MODE,flags) \
|
||||||
static const EVP_CIPHER s390x_aes_##keylen##_##mode = { \
|
static const EVP_CIPHER s390x_aes_##keylen##_##mode = { \
|
||||||
nid##_##keylen##_##nmode,blocksize, \
|
nid##_##keylen##_##nmode,blocksize, \
|
||||||
keylen / 8, \
|
keylen / 8, \
|
||||||
ivlen, \
|
ivlen, \
|
||||||
flags | EVP_CIPH_##MODE##_MODE, \
|
flags | EVP_CIPH_##MODE##_MODE, \
|
||||||
s390x_aes_##mode##_init_key, \
|
s390x_aes_##mode##_init_key, \
|
||||||
s390x_aes_##mode##_cipher, \
|
s390x_aes_##mode##_cipher, \
|
||||||
NULL, \
|
NULL, \
|
||||||
sizeof(S390X_AES_##MODE##_CTX), \
|
sizeof(S390X_AES_##MODE##_CTX), \
|
||||||
NULL, \
|
NULL, \
|
||||||
NULL, \
|
NULL, \
|
||||||
NULL, \
|
NULL, \
|
||||||
NULL \
|
NULL \
|
||||||
}; \
|
}; \
|
||||||
static const EVP_CIPHER aes_##keylen##_##mode = { \
|
static const EVP_CIPHER aes_##keylen##_##mode = { \
|
||||||
nid##_##keylen##_##nmode, \
|
nid##_##keylen##_##nmode, \
|
||||||
blocksize, \
|
blocksize, \
|
||||||
keylen / 8, \
|
keylen / 8, \
|
||||||
ivlen, \
|
ivlen, \
|
||||||
flags | EVP_CIPH_##MODE##_MODE, \
|
flags | EVP_CIPH_##MODE##_MODE, \
|
||||||
aes_init_key, \
|
aes_init_key, \
|
||||||
aes_##mode##_cipher, \
|
aes_##mode##_cipher, \
|
||||||
NULL, \
|
NULL, \
|
||||||
sizeof(EVP_AES_KEY), \
|
sizeof(EVP_AES_KEY), \
|
||||||
NULL, \
|
NULL, \
|
||||||
NULL, \
|
NULL, \
|
||||||
NULL, \
|
NULL, \
|
||||||
NULL \
|
NULL \
|
||||||
}; \
|
}; \
|
||||||
const EVP_CIPHER *EVP_aes_##keylen##_##mode(void) \
|
const EVP_CIPHER *EVP_aes_##keylen##_##mode(void) \
|
||||||
{ \
|
{ \
|
||||||
return S390X_aes_##keylen##_##mode##_CAPABLE ? \
|
return S390X_aes_##keylen##_##mode##_CAPABLE ? \
|
||||||
&s390x_aes_##keylen##_##mode : &aes_##keylen##_##mode; \
|
&s390x_aes_##keylen##_##mode : &aes_##keylen##_##mode; \
|
||||||
}
|
}
|
||||||
|
|
||||||
# define BLOCK_CIPHER_custom(nid,keylen,blocksize,ivlen,mode,MODE,flags)\
|
# define BLOCK_CIPHER_custom(nid,keylen,blocksize,ivlen,mode,MODE,flags)\
|
||||||
static const EVP_CIPHER s390x_aes_##keylen##_##mode = { \
|
static const EVP_CIPHER s390x_aes_##keylen##_##mode = { \
|
||||||
nid##_##keylen##_##mode, \
|
nid##_##keylen##_##mode, \
|
||||||
blocksize, \
|
blocksize, \
|
||||||
(EVP_CIPH_##MODE##_MODE==EVP_CIPH_XTS_MODE||EVP_CIPH_##MODE##_MODE==EVP_CIPH_SIV_MODE ? 2 : 1) * keylen / 8, \
|
(EVP_CIPH_##MODE##_MODE==EVP_CIPH_XTS_MODE||EVP_CIPH_##MODE##_MODE==EVP_CIPH_SIV_MODE ? 2 : 1) * keylen / 8, \
|
||||||
ivlen, \
|
ivlen, \
|
||||||
flags | EVP_CIPH_##MODE##_MODE, \
|
flags | EVP_CIPH_##MODE##_MODE, \
|
||||||
s390x_aes_##mode##_init_key, \
|
s390x_aes_##mode##_init_key, \
|
||||||
s390x_aes_##mode##_cipher, \
|
s390x_aes_##mode##_cipher, \
|
||||||
s390x_aes_##mode##_cleanup, \
|
s390x_aes_##mode##_cleanup, \
|
||||||
sizeof(S390X_AES_##MODE##_CTX), \
|
sizeof(S390X_AES_##MODE##_CTX), \
|
||||||
NULL, \
|
NULL, \
|
||||||
NULL, \
|
NULL, \
|
||||||
s390x_aes_##mode##_ctrl, \
|
s390x_aes_##mode##_ctrl, \
|
||||||
NULL \
|
NULL \
|
||||||
}; \
|
}; \
|
||||||
static const EVP_CIPHER aes_##keylen##_##mode = { \
|
static const EVP_CIPHER aes_##keylen##_##mode = { \
|
||||||
nid##_##keylen##_##mode,blocksize, \
|
nid##_##keylen##_##mode,blocksize, \
|
||||||
(EVP_CIPH_##MODE##_MODE==EVP_CIPH_XTS_MODE||EVP_CIPH_##MODE##_MODE==EVP_CIPH_SIV_MODE ? 2 : 1) * keylen / 8, \
|
(EVP_CIPH_##MODE##_MODE==EVP_CIPH_XTS_MODE||EVP_CIPH_##MODE##_MODE==EVP_CIPH_SIV_MODE ? 2 : 1) * keylen / 8, \
|
||||||
ivlen, \
|
ivlen, \
|
||||||
flags | EVP_CIPH_##MODE##_MODE, \
|
flags | EVP_CIPH_##MODE##_MODE, \
|
||||||
aes_##mode##_init_key, \
|
aes_##mode##_init_key, \
|
||||||
aes_##mode##_cipher, \
|
aes_##mode##_cipher, \
|
||||||
aes_##mode##_cleanup, \
|
aes_##mode##_cleanup, \
|
||||||
sizeof(EVP_AES_##MODE##_CTX), \
|
sizeof(EVP_AES_##MODE##_CTX), \
|
||||||
NULL, \
|
NULL, \
|
||||||
NULL, \
|
NULL, \
|
||||||
aes_##mode##_ctrl, \
|
aes_##mode##_ctrl, \
|
||||||
NULL \
|
NULL \
|
||||||
}; \
|
}; \
|
||||||
const EVP_CIPHER *EVP_aes_##keylen##_##mode(void) \
|
const EVP_CIPHER *EVP_aes_##keylen##_##mode(void) \
|
||||||
{ \
|
{ \
|
||||||
return S390X_aes_##keylen##_##mode##_CAPABLE ? \
|
return S390X_aes_##keylen##_##mode##_CAPABLE ? \
|
||||||
&s390x_aes_##keylen##_##mode : &aes_##keylen##_##mode; \
|
&s390x_aes_##keylen##_##mode : &aes_##keylen##_##mode; \
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -51,7 +51,7 @@ static int rc4_hmac_md5_init_key(EVP_CIPHER_CTX *ctx,
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
# if defined(RC4_ASM) && defined(MD5_ASM) && ( \
|
# if defined(RC4_ASM) && defined(MD5_ASM) && ( \
|
||||||
defined(__x86_64) || defined(__x86_64__) || \
|
defined(__x86_64) || defined(__x86_64__) || \
|
||||||
defined(_M_AMD64) || defined(_M_X64) )
|
defined(_M_AMD64) || defined(_M_X64) )
|
||||||
# define STITCHED_CALL
|
# define STITCHED_CALL
|
||||||
|
|
|
@ -271,65 +271,65 @@ void aes256_t4_xts_decrypt(const unsigned char *in, unsigned char *out,
|
||||||
# define S390X_aes_256_CAPABLE (OPENSSL_s390xcap_P.km[0] & \
|
# define S390X_aes_256_CAPABLE (OPENSSL_s390xcap_P.km[0] & \
|
||||||
S390X_CAPBIT(S390X_AES_256))
|
S390X_CAPBIT(S390X_AES_256))
|
||||||
|
|
||||||
# define S390X_aes_128_cbc_CAPABLE 1 /* checked by callee */
|
# define S390X_aes_128_cbc_CAPABLE 1 /* checked by callee */
|
||||||
# define S390X_aes_192_cbc_CAPABLE 1
|
# define S390X_aes_192_cbc_CAPABLE 1
|
||||||
# define S390X_aes_256_cbc_CAPABLE 1
|
# define S390X_aes_256_cbc_CAPABLE 1
|
||||||
|
|
||||||
# define S390X_aes_128_ecb_CAPABLE S390X_aes_128_CAPABLE
|
# define S390X_aes_128_ecb_CAPABLE S390X_aes_128_CAPABLE
|
||||||
# define S390X_aes_192_ecb_CAPABLE S390X_aes_192_CAPABLE
|
# define S390X_aes_192_ecb_CAPABLE S390X_aes_192_CAPABLE
|
||||||
# define S390X_aes_256_ecb_CAPABLE S390X_aes_256_CAPABLE
|
# define S390X_aes_256_ecb_CAPABLE S390X_aes_256_CAPABLE
|
||||||
|
|
||||||
# define S390X_aes_128_ofb_CAPABLE (S390X_aes_128_CAPABLE && \
|
# define S390X_aes_128_ofb_CAPABLE (S390X_aes_128_CAPABLE && \
|
||||||
(OPENSSL_s390xcap_P.kmo[0] & \
|
(OPENSSL_s390xcap_P.kmo[0] & \
|
||||||
S390X_CAPBIT(S390X_AES_128)))
|
S390X_CAPBIT(S390X_AES_128)))
|
||||||
# define S390X_aes_192_ofb_CAPABLE (S390X_aes_192_CAPABLE && \
|
# define S390X_aes_192_ofb_CAPABLE (S390X_aes_192_CAPABLE && \
|
||||||
(OPENSSL_s390xcap_P.kmo[0] & \
|
(OPENSSL_s390xcap_P.kmo[0] & \
|
||||||
S390X_CAPBIT(S390X_AES_192)))
|
S390X_CAPBIT(S390X_AES_192)))
|
||||||
# define S390X_aes_256_ofb_CAPABLE (S390X_aes_256_CAPABLE && \
|
# define S390X_aes_256_ofb_CAPABLE (S390X_aes_256_CAPABLE && \
|
||||||
(OPENSSL_s390xcap_P.kmo[0] & \
|
(OPENSSL_s390xcap_P.kmo[0] & \
|
||||||
S390X_CAPBIT(S390X_AES_256)))
|
S390X_CAPBIT(S390X_AES_256)))
|
||||||
|
|
||||||
# define S390X_aes_128_cfb_CAPABLE (S390X_aes_128_CAPABLE && \
|
# define S390X_aes_128_cfb_CAPABLE (S390X_aes_128_CAPABLE && \
|
||||||
(OPENSSL_s390xcap_P.kmf[0] & \
|
(OPENSSL_s390xcap_P.kmf[0] & \
|
||||||
S390X_CAPBIT(S390X_AES_128)))
|
S390X_CAPBIT(S390X_AES_128)))
|
||||||
# define S390X_aes_192_cfb_CAPABLE (S390X_aes_192_CAPABLE && \
|
# define S390X_aes_192_cfb_CAPABLE (S390X_aes_192_CAPABLE && \
|
||||||
(OPENSSL_s390xcap_P.kmf[0] & \
|
(OPENSSL_s390xcap_P.kmf[0] & \
|
||||||
S390X_CAPBIT(S390X_AES_192)))
|
S390X_CAPBIT(S390X_AES_192)))
|
||||||
# define S390X_aes_256_cfb_CAPABLE (S390X_aes_256_CAPABLE && \
|
# define S390X_aes_256_cfb_CAPABLE (S390X_aes_256_CAPABLE && \
|
||||||
(OPENSSL_s390xcap_P.kmf[0] & \
|
(OPENSSL_s390xcap_P.kmf[0] & \
|
||||||
S390X_CAPBIT(S390X_AES_256)))
|
S390X_CAPBIT(S390X_AES_256)))
|
||||||
# define S390X_aes_128_cfb8_CAPABLE (OPENSSL_s390xcap_P.kmf[0] & \
|
# define S390X_aes_128_cfb8_CAPABLE (OPENSSL_s390xcap_P.kmf[0] & \
|
||||||
S390X_CAPBIT(S390X_AES_128))
|
S390X_CAPBIT(S390X_AES_128))
|
||||||
# define S390X_aes_192_cfb8_CAPABLE (OPENSSL_s390xcap_P.kmf[0] & \
|
# define S390X_aes_192_cfb8_CAPABLE (OPENSSL_s390xcap_P.kmf[0] & \
|
||||||
S390X_CAPBIT(S390X_AES_192))
|
S390X_CAPBIT(S390X_AES_192))
|
||||||
# define S390X_aes_256_cfb8_CAPABLE (OPENSSL_s390xcap_P.kmf[0] & \
|
# define S390X_aes_256_cfb8_CAPABLE (OPENSSL_s390xcap_P.kmf[0] & \
|
||||||
S390X_CAPBIT(S390X_AES_256))
|
S390X_CAPBIT(S390X_AES_256))
|
||||||
# define S390X_aes_128_cfb1_CAPABLE 0
|
# define S390X_aes_128_cfb1_CAPABLE 0
|
||||||
# define S390X_aes_192_cfb1_CAPABLE 0
|
# define S390X_aes_192_cfb1_CAPABLE 0
|
||||||
# define S390X_aes_256_cfb1_CAPABLE 0
|
# define S390X_aes_256_cfb1_CAPABLE 0
|
||||||
|
|
||||||
# define S390X_aes_128_ctr_CAPABLE 1 /* checked by callee */
|
# define S390X_aes_128_ctr_CAPABLE 1 /* checked by callee */
|
||||||
# define S390X_aes_192_ctr_CAPABLE 1
|
# define S390X_aes_192_ctr_CAPABLE 1
|
||||||
# define S390X_aes_256_ctr_CAPABLE 1
|
# define S390X_aes_256_ctr_CAPABLE 1
|
||||||
|
|
||||||
# define S390X_aes_128_xts_CAPABLE 1 /* checked by callee */
|
# define S390X_aes_128_xts_CAPABLE 1 /* checked by callee */
|
||||||
# define S390X_aes_256_xts_CAPABLE 1
|
# define S390X_aes_256_xts_CAPABLE 1
|
||||||
|
|
||||||
# define S390X_aes_128_ccm_CAPABLE (S390X_aes_128_CAPABLE && \
|
# define S390X_aes_128_ccm_CAPABLE (S390X_aes_128_CAPABLE && \
|
||||||
(OPENSSL_s390xcap_P.kmac[0] & \
|
(OPENSSL_s390xcap_P.kmac[0] & \
|
||||||
S390X_CAPBIT(S390X_AES_128)))
|
S390X_CAPBIT(S390X_AES_128)))
|
||||||
# define S390X_aes_192_ccm_CAPABLE (S390X_aes_192_CAPABLE && \
|
# define S390X_aes_192_ccm_CAPABLE (S390X_aes_192_CAPABLE && \
|
||||||
(OPENSSL_s390xcap_P.kmac[0] & \
|
(OPENSSL_s390xcap_P.kmac[0] & \
|
||||||
S390X_CAPBIT(S390X_AES_192)))
|
S390X_CAPBIT(S390X_AES_192)))
|
||||||
# define S390X_aes_256_ccm_CAPABLE (S390X_aes_256_CAPABLE && \
|
# define S390X_aes_256_ccm_CAPABLE (S390X_aes_256_CAPABLE && \
|
||||||
(OPENSSL_s390xcap_P.kmac[0] & \
|
(OPENSSL_s390xcap_P.kmac[0] & \
|
||||||
S390X_CAPBIT(S390X_AES_256)))
|
S390X_CAPBIT(S390X_AES_256)))
|
||||||
# define S390X_CCM_AAD_FLAG 0x40
|
# define S390X_CCM_AAD_FLAG 0x40
|
||||||
|
|
||||||
# ifndef OPENSSL_NO_OCB
|
# ifndef OPENSSL_NO_OCB
|
||||||
# define S390X_aes_128_ocb_CAPABLE 0
|
# define S390X_aes_128_ocb_CAPABLE 0
|
||||||
# define S390X_aes_192_ocb_CAPABLE 0
|
# define S390X_aes_192_ocb_CAPABLE 0
|
||||||
# define S390X_aes_256_ocb_CAPABLE 0
|
# define S390X_aes_256_ocb_CAPABLE 0
|
||||||
# endif /* OPENSSL_NO_OCB */
|
# endif /* OPENSSL_NO_OCB */
|
||||||
|
|
||||||
# ifndef OPENSSL_NO_SIV
|
# ifndef OPENSSL_NO_SIV
|
||||||
|
|
|
@ -35,8 +35,8 @@ void ChaCha20_ctr32(unsigned char *out, const unsigned char *inp,
|
||||||
((unsigned int)(p)[0]) | ((unsigned int)(p)[1]<<8) | \
|
((unsigned int)(p)[0]) | ((unsigned int)(p)[1]<<8) | \
|
||||||
((unsigned int)(p)[2]<<16) | ((unsigned int)(p)[3]<<24) )
|
((unsigned int)(p)[2]<<16) | ((unsigned int)(p)[3]<<24) )
|
||||||
|
|
||||||
#define CHACHA_KEY_SIZE 32
|
#define CHACHA_KEY_SIZE 32
|
||||||
#define CHACHA_CTR_SIZE 16
|
#define CHACHA_CTR_SIZE 16
|
||||||
#define CHACHA_BLK_SIZE 64
|
#define CHACHA_BLK_SIZE 64
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -55,88 +55,88 @@ struct OPENSSL_s390xcap_st {
|
||||||
extern struct OPENSSL_s390xcap_st OPENSSL_s390xcap_P;
|
extern struct OPENSSL_s390xcap_st OPENSSL_s390xcap_P;
|
||||||
|
|
||||||
/* Max number of 64-bit words currently returned by STFLE */
|
/* Max number of 64-bit words currently returned by STFLE */
|
||||||
# define S390X_STFLE_MAX 3
|
# define S390X_STFLE_MAX 3
|
||||||
|
|
||||||
/* convert facility bit number or function code to bit mask */
|
/* convert facility bit number or function code to bit mask */
|
||||||
# define S390X_CAPBIT(i) (1ULL << (63 - (i) % 64))
|
# define S390X_CAPBIT(i) (1ULL << (63 - (i) % 64))
|
||||||
|
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
/* OPENSSL_s390xcap_P offsets [bytes] */
|
/* OPENSSL_s390xcap_P offsets [bytes] */
|
||||||
# define S390X_STFLE 0x00
|
# define S390X_STFLE 0x00
|
||||||
# define S390X_KIMD 0x20
|
# define S390X_KIMD 0x20
|
||||||
# define S390X_KLMD 0x30
|
# define S390X_KLMD 0x30
|
||||||
# define S390X_KM 0x40
|
# define S390X_KM 0x40
|
||||||
# define S390X_KMC 0x50
|
# define S390X_KMC 0x50
|
||||||
# define S390X_KMAC 0x60
|
# define S390X_KMAC 0x60
|
||||||
# define S390X_KMCTR 0x70
|
# define S390X_KMCTR 0x70
|
||||||
# define S390X_KMO 0x80
|
# define S390X_KMO 0x80
|
||||||
# define S390X_KMF 0x90
|
# define S390X_KMF 0x90
|
||||||
# define S390X_PRNO 0xa0
|
# define S390X_PRNO 0xa0
|
||||||
# define S390X_KMA 0xb0
|
# define S390X_KMA 0xb0
|
||||||
# define S390X_PCC 0xc0
|
# define S390X_PCC 0xc0
|
||||||
# define S390X_KDSA 0xd0
|
# define S390X_KDSA 0xd0
|
||||||
|
|
||||||
/* Facility Bit Numbers */
|
/* Facility Bit Numbers */
|
||||||
# define S390X_MSA 17 /* message-security-assist */
|
# define S390X_MSA 17 /* message-security-assist */
|
||||||
# define S390X_STCKF 25 /* store-clock-fast */
|
# define S390X_STCKF 25 /* store-clock-fast */
|
||||||
# define S390X_MSA5 57 /* message-security-assist-ext. 5 */
|
# define S390X_MSA5 57 /* message-security-assist-ext. 5 */
|
||||||
# define S390X_MSA3 76 /* message-security-assist-ext. 3 */
|
# define S390X_MSA3 76 /* message-security-assist-ext. 3 */
|
||||||
# define S390X_MSA4 77 /* message-security-assist-ext. 4 */
|
# define S390X_MSA4 77 /* message-security-assist-ext. 4 */
|
||||||
# define S390X_VX 129 /* vector */
|
# define S390X_VX 129 /* vector */
|
||||||
# define S390X_VXD 134 /* vector packed decimal */
|
# define S390X_VXD 134 /* vector packed decimal */
|
||||||
# define S390X_VXE 135 /* vector enhancements 1 */
|
# define S390X_VXE 135 /* vector enhancements 1 */
|
||||||
# define S390X_MSA8 146 /* message-security-assist-ext. 8 */
|
# define S390X_MSA8 146 /* message-security-assist-ext. 8 */
|
||||||
# define S390X_MSA9 155 /* message-security-assist-ext. 9 */
|
# define S390X_MSA9 155 /* message-security-assist-ext. 9 */
|
||||||
|
|
||||||
/* Function Codes */
|
/* Function Codes */
|
||||||
|
|
||||||
/* all instructions */
|
/* all instructions */
|
||||||
# define S390X_QUERY 0
|
# define S390X_QUERY 0
|
||||||
|
|
||||||
/* kimd/klmd */
|
/* kimd/klmd */
|
||||||
# define S390X_SHA_1 1
|
# define S390X_SHA_1 1
|
||||||
# define S390X_SHA_256 2
|
# define S390X_SHA_256 2
|
||||||
# define S390X_SHA_512 3
|
# define S390X_SHA_512 3
|
||||||
# define S390X_SHA3_224 32
|
# define S390X_SHA3_224 32
|
||||||
# define S390X_SHA3_256 33
|
# define S390X_SHA3_256 33
|
||||||
# define S390X_SHA3_384 34
|
# define S390X_SHA3_384 34
|
||||||
# define S390X_SHA3_512 35
|
# define S390X_SHA3_512 35
|
||||||
# define S390X_SHAKE_128 36
|
# define S390X_SHAKE_128 36
|
||||||
# define S390X_SHAKE_256 37
|
# define S390X_SHAKE_256 37
|
||||||
# define S390X_GHASH 65
|
# define S390X_GHASH 65
|
||||||
|
|
||||||
/* km/kmc/kmac/kmctr/kmo/kmf/kma */
|
/* km/kmc/kmac/kmctr/kmo/kmf/kma */
|
||||||
# define S390X_AES_128 18
|
# define S390X_AES_128 18
|
||||||
# define S390X_AES_192 19
|
# define S390X_AES_192 19
|
||||||
# define S390X_AES_256 20
|
# define S390X_AES_256 20
|
||||||
|
|
||||||
/* km */
|
/* km */
|
||||||
# define S390X_XTS_AES_128 50
|
# define S390X_XTS_AES_128 50
|
||||||
# define S390X_XTS_AES_256 52
|
# define S390X_XTS_AES_256 52
|
||||||
|
|
||||||
/* prno */
|
/* prno */
|
||||||
# define S390X_SHA_512_DRNG 3
|
# define S390X_SHA_512_DRNG 3
|
||||||
# define S390X_TRNG 114
|
# define S390X_TRNG 114
|
||||||
|
|
||||||
/* pcc */
|
/* pcc */
|
||||||
# define S390X_SCALAR_MULTIPLY_P256 64
|
# define S390X_SCALAR_MULTIPLY_P256 64
|
||||||
# define S390X_SCALAR_MULTIPLY_P384 65
|
# define S390X_SCALAR_MULTIPLY_P384 65
|
||||||
# define S390X_SCALAR_MULTIPLY_P521 66
|
# define S390X_SCALAR_MULTIPLY_P521 66
|
||||||
|
|
||||||
/* kdsa */
|
/* kdsa */
|
||||||
# define S390X_ECDSA_VERIFY_P256 1
|
# define S390X_ECDSA_VERIFY_P256 1
|
||||||
# define S390X_ECDSA_VERIFY_P384 2
|
# define S390X_ECDSA_VERIFY_P384 2
|
||||||
# define S390X_ECDSA_VERIFY_P521 3
|
# define S390X_ECDSA_VERIFY_P521 3
|
||||||
# define S390X_ECDSA_SIGN_P256 9
|
# define S390X_ECDSA_SIGN_P256 9
|
||||||
# define S390X_ECDSA_SIGN_P384 10
|
# define S390X_ECDSA_SIGN_P384 10
|
||||||
# define S390X_ECDSA_SIGN_P521 11
|
# define S390X_ECDSA_SIGN_P521 11
|
||||||
|
|
||||||
/* Register 0 Flags */
|
/* Register 0 Flags */
|
||||||
# define S390X_DECRYPT 0x80
|
# define S390X_DECRYPT 0x80
|
||||||
# define S390X_KMA_LPC 0x100
|
# define S390X_KMA_LPC 0x100
|
||||||
# define S390X_KMA_LAAD 0x200
|
# define S390X_KMA_LAAD 0x200
|
||||||
# define S390X_KMA_HS 0x400
|
# define S390X_KMA_HS 0x400
|
||||||
# define S390X_KDSA_D 0x80
|
# define S390X_KDSA_D 0x80
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -16,35 +16,35 @@
|
||||||
#include "internal/ctype.h"
|
#include "internal/ctype.h"
|
||||||
#include "s390x_arch.h"
|
#include "s390x_arch.h"
|
||||||
|
|
||||||
#define LEN 128
|
#define LEN 128
|
||||||
#define STR_(S) #S
|
#define STR_(S) #S
|
||||||
#define STR(S) STR_(S)
|
#define STR(S) STR_(S)
|
||||||
|
|
||||||
#define TOK_FUNC(NAME) \
|
#define TOK_FUNC(NAME) \
|
||||||
(sscanf(tok_begin, \
|
(sscanf(tok_begin, \
|
||||||
" " STR(NAME) " : %" STR(LEN) "[^:] : " \
|
" " STR(NAME) " : %" STR(LEN) "[^:] : " \
|
||||||
"%" STR(LEN) "s %" STR(LEN) "s ", \
|
"%" STR(LEN) "s %" STR(LEN) "s ", \
|
||||||
tok[0], tok[1], tok[2]) == 2) { \
|
tok[0], tok[1], tok[2]) == 2) { \
|
||||||
\
|
\
|
||||||
off = (tok[0][0] == '~') ? 1 : 0; \
|
off = (tok[0][0] == '~') ? 1 : 0; \
|
||||||
if (sscanf(tok[0] + off, "%llx", &cap->NAME[0]) != 1) \
|
if (sscanf(tok[0] + off, "%llx", &cap->NAME[0]) != 1) \
|
||||||
goto ret; \
|
goto ret; \
|
||||||
if (off) \
|
if (off) \
|
||||||
cap->NAME[0] = ~cap->NAME[0]; \
|
cap->NAME[0] = ~cap->NAME[0]; \
|
||||||
\
|
\
|
||||||
off = (tok[1][0] == '~') ? 1 : 0; \
|
off = (tok[1][0] == '~') ? 1 : 0; \
|
||||||
if (sscanf(tok[1] + off, "%llx", &cap->NAME[1]) != 1) \
|
if (sscanf(tok[1] + off, "%llx", &cap->NAME[1]) != 1) \
|
||||||
goto ret; \
|
goto ret; \
|
||||||
if (off) \
|
if (off) \
|
||||||
cap->NAME[1] = ~cap->NAME[1]; \
|
cap->NAME[1] = ~cap->NAME[1]; \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define TOK_CPU(NAME) \
|
#define TOK_CPU(NAME) \
|
||||||
(sscanf(tok_begin, \
|
(sscanf(tok_begin, \
|
||||||
" %" STR(LEN) "s %" STR(LEN) "s ", \
|
" %" STR(LEN) "s %" STR(LEN) "s ", \
|
||||||
tok[0], tok[1]) == 1 \
|
tok[0], tok[1]) == 1 \
|
||||||
&& !strcmp(tok[0], #NAME)) { \
|
&& !strcmp(tok[0], #NAME)) { \
|
||||||
memcpy(cap, &NAME, sizeof(*cap)); \
|
memcpy(cap, &NAME, sizeof(*cap)); \
|
||||||
}
|
}
|
||||||
|
|
||||||
static sigjmp_buf ill_jmp;
|
static sigjmp_buf ill_jmp;
|
||||||
|
|
|
@ -88,8 +88,8 @@
|
||||||
* We know that VMS, MSDOS, VXWORKS, use entirely other mechanisms.
|
* We know that VMS, MSDOS, VXWORKS, use entirely other mechanisms.
|
||||||
*/
|
*/
|
||||||
# elif !defined(OPENSSL_SYS_VMS) \
|
# elif !defined(OPENSSL_SYS_VMS) \
|
||||||
&& !defined(OPENSSL_SYS_MSDOS) \
|
&& !defined(OPENSSL_SYS_MSDOS) \
|
||||||
&& !defined(OPENSSL_SYS_VXWORKS)
|
&& !defined(OPENSSL_SYS_VXWORKS)
|
||||||
# define TERMIOS
|
# define TERMIOS
|
||||||
# undef TERMIO
|
# undef TERMIO
|
||||||
# undef SGTTY
|
# undef SGTTY
|
||||||
|
|
|
@ -12,19 +12,19 @@
|
||||||
|
|
||||||
# include <limits.h>
|
# include <limits.h>
|
||||||
|
|
||||||
# if (-1 & 3) == 0x03 /* Two's complement */
|
# if (-1 & 3) == 0x03 /* Two's complement */
|
||||||
|
|
||||||
# define __MAXUINT__(T) ((T) -1)
|
# define __MAXUINT__(T) ((T) -1)
|
||||||
# define __MAXINT__(T) ((T) ((((T) 1) << ((sizeof(T) * CHAR_BIT) - 1)) ^ __MAXUINT__(T)))
|
# define __MAXINT__(T) ((T) ((((T) 1) << ((sizeof(T) * CHAR_BIT) - 1)) ^ __MAXUINT__(T)))
|
||||||
# define __MININT__(T) (-__MAXINT__(T) - 1)
|
# define __MININT__(T) (-__MAXINT__(T) - 1)
|
||||||
|
|
||||||
# elif (-1 & 3) == 0x02 /* One's complement */
|
# elif (-1 & 3) == 0x02 /* One's complement */
|
||||||
|
|
||||||
# define __MAXUINT__(T) (((T) -1) + 1)
|
# define __MAXUINT__(T) (((T) -1) + 1)
|
||||||
# define __MAXINT__(T) ((T) ((((T) 1) << ((sizeof(T) * CHAR_BIT) - 1)) ^ __MAXUINT__(T)))
|
# define __MAXINT__(T) ((T) ((((T) 1) << ((sizeof(T) * CHAR_BIT) - 1)) ^ __MAXUINT__(T)))
|
||||||
# define __MININT__(T) (-__MAXINT__(T))
|
# define __MININT__(T) (-__MAXINT__(T))
|
||||||
|
|
||||||
# elif (-1 & 3) == 0x01 /* Sign/magnitude */
|
# elif (-1 & 3) == 0x01 /* Sign/magnitude */
|
||||||
|
|
||||||
# define __MAXINT__(T) ((T) (((((T) 1) << ((sizeof(T) * CHAR_BIT) - 2)) - 1) | (((T) 1) << ((sizeof(T) * CHAR_BIT) - 2))))
|
# define __MAXINT__(T) ((T) (((((T) 1) << ((sizeof(T) * CHAR_BIT) - 2)) - 1) | (((T) 1) << ((sizeof(T) * CHAR_BIT) - 2))))
|
||||||
# define __MAXUINT__(T) ((T) (__MAXINT__(T) | (((T) 1) << ((sizeof(T) * CHAR_BIT) - 1))))
|
# define __MAXUINT__(T) ((T) (__MAXINT__(T) | (((T) 1) << ((sizeof(T) * CHAR_BIT) - 1))))
|
||||||
|
|
|
@ -47,7 +47,7 @@ void RAND_seed(const void *buf, int num);
|
||||||
void RAND_keep_random_devices_open(int keep);
|
void RAND_keep_random_devices_open(int keep);
|
||||||
|
|
||||||
# if defined(__ANDROID__) && defined(__NDK_FPABI__)
|
# if defined(__ANDROID__) && defined(__NDK_FPABI__)
|
||||||
__NDK_FPABI__ /* __attribute__((pcs("aapcs"))) on ARM */
|
__NDK_FPABI__ /* __attribute__((pcs("aapcs"))) on ARM */
|
||||||
# endif
|
# endif
|
||||||
void RAND_add(const void *buf, int num, double randomness);
|
void RAND_add(const void *buf, int num, double randomness);
|
||||||
int RAND_load_file(const char *file, long max_bytes);
|
int RAND_load_file(const char *file, long max_bytes);
|
||||||
|
|
|
@ -629,7 +629,7 @@ int tls_collect_extensions(SSL *s, PACKET *packet, unsigned int context,
|
||||||
&& !((context & SSL_EXT_TLS1_2_SERVER_HELLO) != 0
|
&& !((context & SSL_EXT_TLS1_2_SERVER_HELLO) != 0
|
||||||
&& type == TLSEXT_TYPE_cryptopro_bug)
|
&& type == TLSEXT_TYPE_cryptopro_bug)
|
||||||
#endif
|
#endif
|
||||||
) {
|
) {
|
||||||
SSLfatal(s, SSL_AD_UNSUPPORTED_EXTENSION,
|
SSLfatal(s, SSL_AD_UNSUPPORTED_EXTENSION,
|
||||||
SSL_F_TLS_COLLECT_EXTENSIONS, SSL_R_UNSOLICITED_EXTENSION);
|
SSL_F_TLS_COLLECT_EXTENSIONS, SSL_R_UNSOLICITED_EXTENSION);
|
||||||
goto err;
|
goto err;
|
||||||
|
|
|
@ -1721,8 +1721,8 @@ void ssl_set_sig_mask(uint32_t *pmask_a, SSL *s, int op)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
clu = ssl_cert_lookup_by_idx(lu->sig_idx);
|
clu = ssl_cert_lookup_by_idx(lu->sig_idx);
|
||||||
if (clu == NULL)
|
if (clu == NULL)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* If algorithm is disabled see if we can enable it */
|
/* If algorithm is disabled see if we can enable it */
|
||||||
if ((clu->amask & disabled_mask) != 0
|
if ((clu->amask & disabled_mask) != 0
|
||||||
|
|
|
@ -2526,7 +2526,7 @@ int setup_tests(void)
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
case OPT_ERR:
|
case OPT_ERR:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
n = test_get_argument_count();
|
n = test_get_argument_count();
|
||||||
|
|
|
@ -273,7 +273,7 @@ static int test_cavs_kats(const struct drbg_kat *test[], int i)
|
||||||
if (!single_kat_pr_true(td))
|
if (!single_kat_pr_true(td))
|
||||||
goto err;
|
goto err;
|
||||||
break;
|
break;
|
||||||
default: /* cant happen */
|
default: /* cant happen */
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
rv = 1;
|
rv = 1;
|
||||||
|
|
|
@ -144,7 +144,7 @@ int setup_tests(void)
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
case OPT_ERR:
|
case OPT_ERR:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -162,10 +162,10 @@ static int check_single_test_params(char *name, char *testname, char *itname)
|
||||||
if (strcmp(name, all_tests[i].test_case_name) == 0) {
|
if (strcmp(name, all_tests[i].test_case_name) == 0) {
|
||||||
single_test = 1 + i;
|
single_test = 1 + i;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (i >= num_tests)
|
if (i >= num_tests)
|
||||||
single_test = atoi(name);
|
single_test = atoi(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue