com php-src: zero sensitive data more secure way: ext/standard/ crypt_sha512.c
| From: | Anatol Belski | Date: | Thu, 18 Sep 2014 22:06:37 +0000 |
| Subject: | com php-src: zero sensitive data more secure way: ext/standard/ crypt_sha512.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-81745@lists.php.net to get a copy of this message | ||
Commit: bb89ac8408d6139feef9aa318b69e4ac5ee31106
Author: Anatol Belski <ab@php.net> Thu, 18 Sep 2014 22:13:30 +0200
Parents: 732c49b433513860073c9b12658e807db97c051b
Branches: master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=bb89ac8408d6139feef9aa318b69e4ac5ee31106
Log:
zero sensitive data more secure way
Changed paths:
M ext/standard/crypt_sha512.c
Diff:
diff --git a/ext/standard/crypt_sha512.c b/ext/standard/crypt_sha512.c
index 0f696f5...0b6c338 100644
--- a/ext/standard/crypt_sha512.c
+++ b/ext/standard/crypt_sha512.c
@@ -619,6 +619,19 @@ php_sha512_crypt_r(const char *key, const char *salt, char *buffer, int buflen)
inside the SHA512 implementation as well. */
sha512_init_ctx(&ctx);
sha512_finish_ctx(&ctx, alt_result);
+#ifdef PHP_WIN32
+ RtlSecureZeroMemory(temp_result, sizeof(temp_result));
+ RtlSecureZeroMemory(p_bytes, key_len);
+ RtlSecureZeroMemory(s_bytes, salt_len);
+ RtlSecureZeroMemory(&ctx, sizeof(ctx));
+ RtlSecureZeroMemory(&alt_ctx, sizeof(alt_ctx));
+ if (copied_key != NULL) {
+ RtlSecureZeroMemory(copied_key, key_len);
+ }
+ if (copied_salt != NULL) {
+ RtlSecureZeroMemory(copied_salt, salt_len);
+ }
+#else
memset(temp_result, '\0', sizeof(temp_result));
memset(p_bytes, '\0', key_len);
memset(s_bytes, '\0', salt_len);
@@ -630,6 +643,7 @@ php_sha512_crypt_r(const char *key, const char *salt, char *buffer, int buflen)
if (copied_salt != NULL) {
memset(copied_salt, '\0', salt_len);
}
+#endif
return buffer;
}