summaryrefslogtreecommitdiff
path: root/openssl_err.cpp
diff options
context:
space:
mode:
authorShawn Willden <swillden@google.com>2016-01-05 17:06:56 -0700
committerShawn Willden <swillden@google.com>2016-01-26 14:15:51 -0700
commit239c1664173c941038a1d1d13626e58ce3cef819 (patch)
treecc74f95644378c37f0c1e1056d3dff66e0406d01 /openssl_err.cpp
parent78c5d8796c560deb2a0194f581f13a833437f012 (diff)
downloadkeymaster-239c1664173c941038a1d1d13626e58ce3cef819.tar.gz
Add utilities to format/parse ASN.1 attestation records.
Bug: 22914603 Change-Id: I9279df29ec06e07fbd60427e22b8f7a74648c8ed
Diffstat (limited to 'openssl_err.cpp')
-rw-r--r--openssl_err.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/openssl_err.cpp b/openssl_err.cpp
index df2920b..cd4ba20 100644
--- a/openssl_err.cpp
+++ b/openssl_err.cpp
@@ -48,6 +48,20 @@ keymaster_error_t TranslateLastOpenSslError(bool log_message) {
}
int reason = ERR_GET_REASON(error);
+
+ /* Handle global error reasons */
+ switch (reason) {
+ case ERR_R_MALLOC_FAILURE:
+ return KM_ERROR_MEMORY_ALLOCATION_FAILED;
+ case ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED:
+ case ERR_R_PASSED_NULL_PARAMETER:
+ case ERR_R_INTERNAL_ERROR:
+ case ERR_R_OVERFLOW:
+ return KM_ERROR_UNKNOWN_ERROR;
+ default:
+ break;
+ }
+
switch (ERR_GET_LIB(error)) {
case ERR_LIB_USER:
return static_cast<keymaster_error_t>(reason);