int EVP_add_digest(const EVP_MD *md) { int r; const char *name; OPENSSL_init(); name = OBJ_nid2sn(md->type); r = OBJ_NAME_add(name, OBJ_NAME_TYPE_MD_METH, (const char *)md); if (r == 0) return (0); check_defer(md->type); r = OBJ_NAME_add(OBJ_nid2ln(md->type), OBJ_NAME_TYPE_MD_METH, (const char *)md); if (r == 0) return (0); if (md->pkey_type && md->type != md->pkey_type) { r = OBJ_NAME_add(OBJ_nid2sn(md->pkey_type), OBJ_NAME_TYPE_MD_METH | OBJ_NAME_ALIAS, name); if (r == 0) return (0); check_defer(md->pkey_type); r = OBJ_NAME_add(OBJ_nid2ln(md->pkey_type), OBJ_NAME_TYPE_MD_METH | OBJ_NAME_ALIAS, name); } return (r); }
int FIPS_mode(void) { OPENSSL_init(); #ifdef OPENSSL_FIPS return FIPS_module_mode(); #else return 0; #endif }
void CRYPTO_set_locking_callback(void (*func)(int mode,int type, const char *file,int line)) { /* Calling this here ensures initialisation before any threads * are started. */ OPENSSL_init(); locking_callback=func; }
int EVP_add_cipher(const EVP_CIPHER *c) { int r; #ifdef OPENSSL_FIPS OPENSSL_init(); #endif r=OBJ_NAME_add(OBJ_nid2sn(c->nid),OBJ_NAME_TYPE_CIPHER_METH,(const char *)c); if (r == 0) return(0); r=OBJ_NAME_add(OBJ_nid2ln(c->nid),OBJ_NAME_TYPE_CIPHER_METH,(const char *)c); return(r); }
int CRYPTO_set_mem_functions(void *(*m)(size_t), void *(*r)(void *, size_t), void (*f)(void *)) { OPENSSL_init(); if (!allow_customize) return 0; if ((m == 0) || (r == 0) || (f == 0)) return 0; malloc_func=m; malloc_ex_func=default_malloc_ex; realloc_func=r; realloc_ex_func=default_realloc_ex; free_func=f; malloc_locked_func=m; malloc_locked_ex_func=default_malloc_locked_ex; free_locked_func=f; return 1; }
int CRYPTO_set_mem_debug_functions(void (*m)(void *,int,const char *,int,int), void (*r)(void *,void *,int,const char *,int,int), void (*f)(void *,int), void (*so)(long), long (*go)(void)) { if (!allow_customize_debug) return 0; OPENSSL_init(); malloc_debug_func=m; realloc_debug_func=r; free_debug_func=f; set_debug_options_func=so; get_debug_options_func=go; return 1; }
int EVP_add_cipher (const EVP_CIPHER * c) { int r; if (c == NULL) return 0; OPENSSL_init (); r = OBJ_NAME_add (OBJ_nid2sn (c->nid), OBJ_NAME_TYPE_CIPHER_METH, (const char *) c); if (r == 0) return (0); check_defer (c->nid); r = OBJ_NAME_add (OBJ_nid2ln (c->nid), OBJ_NAME_TYPE_CIPHER_METH, (const char *) c); return (r); }
int FIPS_mode_set(int r) { OPENSSL_init(); #ifdef OPENSSL_FIPS #ifndef FIPS_AUTH_USER_PASS #define FIPS_AUTH_USER_PASS "Default FIPS Crypto User Password" #endif if (!FIPS_module_mode_set(r, FIPS_AUTH_USER_PASS)) return 0; if (r) RAND_set_rand_method(FIPS_rand_get_method()); else RAND_set_rand_method(NULL); return 1; #else if (r == 0) return 1; CRYPTOerr(CRYPTO_F_FIPS_MODE_SET, CRYPTO_R_FIPS_MODE_NOT_SUPPORTED); return 0; #endif }
int main(int argc, char **argv) { static char buf[1024]; char **args = argv + 1; const char *sname = "fipstests.sh"; ARGS arg; int xargc; char **xargv; int lineno = 0, badarg = 0; int nerr = 0, quiet = 0, verbose = 0; int rv; FILE *in = NULL; #ifdef FIPS_ALGVS_MEMCHECK CRYPTO_malloc_debug_init(); OPENSSL_init(); CRYPTO_set_mem_debug_options(V_CRYPTO_MDEBUG_ALL); CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON); #endif #if defined(_TMS320C6400_PLUS) SysInit(); #endif #if (defined(__arm__) || defined(__aarch64__)) if (*args && !strcmp(*args, "-noaccel")) { extern unsigned int OPENSSL_armcap_P; OPENSSL_armcap_P=0; args++; argc--; } #endif if (*args && *args[0] != '-') { rv = run_prg(argc - 1, args); #ifdef FIPS_ALGVS_MEMCHECK CRYPTO_mem_leaks_fp(stderr); #endif return rv; } while (!badarg && *args && *args[0] == '-') { if (!strcmp(*args, "-script")) { if (args[1]) { args++; sname = *args; } else badarg = 1; } else if (!strcmp(*args, "-quiet")) quiet = 1; else if (!strcmp(*args, "-verbose")) verbose = 1; else badarg = 1; args++; } if (badarg) { fprintf(stderr, "Error processing arguments\n"); return 1; } in = fopen(sname, "r"); if (!in) { fprintf(stderr, "Error opening script file \"%s\"\n", sname); return 1; } arg.data = NULL; arg.count = 0; while (fgets(buf, sizeof(buf), in)) { lineno++; if (!chopup_args(&arg, buf, &xargc, &xargv)) fprintf(stderr, "Error processing line %d\n", lineno); else { if (!quiet) { int i; int narg = verbose ? xargc : xargc - 2; printf("Running command line:"); for (i = 0; i < narg; i++) printf(" %s", xargv[i]); printf("\n"); } rv = run_prg(xargc, xargv); if (FIPS_module_mode()) FIPS_module_mode_set(0, NULL); if (rv != 0) nerr++; if (rv == -100) fprintf(stderr, "ERROR: Command not found\n"); else if (rv != 0) fprintf(stderr, "ERROR: returned %d\n", rv); else if (verbose) printf("\tCommand run successfully\n"); } } if (!quiet) printf("Completed with %d errors\n", nerr); if (arg.data) OPENSSL_free(arg.data); fclose(in); #ifdef FIPS_ALGVS_MEMCHECK CRYPTO_mem_leaks_fp(stderr); #endif if (nerr == 0) return 0; return 1; }