-/* $OpenBSD: malloc-wrapper.c,v 1.4 2017/04/28 22:38:51 beck Exp $ */
+/* $OpenBSD: malloc-wrapper.c,v 1.5 2017/04/28 22:46:40 beck Exp $ */
/*
* Copyright (c) 2014 Bob Beck
*
ret = malloc(num);
if (ret && ptr && old_len > 0) {
memcpy(ret, ptr, old_len);
- freezero(ptr, old_len);
+ explicit_bzero(ptr, old_len);
+ free(ptr);
}
return ret;
}
-/* $OpenBSD: rsa_eay.c,v 1.47 2017/04/28 22:38:51 beck Exp $ */
+/* $OpenBSD: rsa_eay.c,v 1.48 2017/04/28 22:46:40 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
BN_CTX_end(ctx);
BN_CTX_free(ctx);
}
- freezero(buf, num);
-
+ if (buf != NULL) {
+ explicit_bzero(buf, num);
+ free(buf);
+ }
return r;
}
BN_CTX_end(ctx);
BN_CTX_free(ctx);
}
- freezero(buf, num);
-
+ if (buf != NULL) {
+ explicit_bzero(buf, num);
+ free(buf);
+ }
return r;
}
BN_CTX_end(ctx);
BN_CTX_free(ctx);
}
- freezero(buf, num);
-
+ if (buf != NULL) {
+ explicit_bzero(buf, num);
+ free(buf);
+ }
return r;
}
BN_CTX_end(ctx);
BN_CTX_free(ctx);
}
- freezero(buf, num);
-
+ if (buf != NULL) {
+ explicit_bzero(buf, num);
+ free(buf);
+ }
return r;
}
-/* $OpenBSD: rsa_saos.c,v 1.21 2017/04/28 22:38:51 beck Exp $ */
+/* $OpenBSD: rsa_saos.c,v 1.22 2017/04/28 22:46:40 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
else
*siglen = i;
- freezero(s, (unsigned int)j + 1);
-
+ explicit_bzero(s, (unsigned int)j + 1);
+ free(s);
return ret;
}
ret = 1;
err:
ASN1_OCTET_STRING_free(sig);
- freezero(s, siglen);
-
+ if (s != NULL) {
+ explicit_bzero(s, (unsigned int)siglen);
+ free(s);
+ }
return ret;
}
-/* $OpenBSD: rsa_sign.c,v 1.27 2017/04/28 22:38:51 beck Exp $ */
+/* $OpenBSD: rsa_sign.c,v 1.28 2017/04/28 22:46:40 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
else
*siglen = i;
- if (type != NID_md5_sha1)
- freezero(tmps, (unsigned int)j + 1);
-
+ if (type != NID_md5_sha1) {
+ explicit_bzero(tmps, (unsigned int)j + 1);
+ free(tmps);
+ }
return (ret);
}
err:
if (sig != NULL)
X509_SIG_free(sig);
-
- freezero(s, (unsigned int)siglen);
-
+ if (s != NULL) {
+ explicit_bzero(s, (unsigned int)siglen);
+ free(s);
+ }
return ret;
}
-/* $OpenBSD: x509_vfy.c,v 1.62 2017/04/28 22:38:51 beck Exp $ */
+/* $OpenBSD: x509_vfy.c,v 1.63 2017/04/28 22:46:40 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
/* Safety net, error returns must set ctx->error */
if (ok <= 0 && ctx->error == X509_V_OK)
ctx->error = X509_V_ERR_UNSPECIFIED;
- return ok;
+
+ /*
+ * Safety net, if user provided verify callback indicates sucess
+ * make sure they have set error to X509_V_OK
+ */
+ if (ctx->verify_cb != null_callback && ok == 1)
+ ctx->error = X509_V_OK;
+
+ return(ctx->error == X509_V_OK);
}
/* Given a STACK_OF(X509) find the issuer of cert (if any)