Lines 31-36
limitations under the License.
Link Here
|
31 |
#include "tensorflow/core/platform/cloud/curl_http_request.h" |
31 |
#include "tensorflow/core/platform/cloud/curl_http_request.h" |
32 |
#include "tensorflow/core/platform/env.h" |
32 |
#include "tensorflow/core/platform/env.h" |
33 |
|
33 |
|
|
|
34 |
#if OPENSSL_VERSION_NUMBER < 0x10100000L |
35 |
static void EVP_MD_CTX_free(EVP_MD_CTX *ctx) |
36 |
{ |
37 |
EVP_MD_CTX_cleanup(ctx); |
38 |
OPENSSL_free(ctx); |
39 |
} |
40 |
#endif |
41 |
|
34 |
namespace tensorflow { |
42 |
namespace tensorflow { |
35 |
|
43 |
|
36 |
namespace { |
44 |
namespace { |
Lines 119-125
Status CreateSignature(RSA* private_key,
Link Here
|
119 |
if (EVP_DigestSignFinal(md_ctx.get(), sig.get(), &sig_len) != 1) { |
127 |
if (EVP_DigestSignFinal(md_ctx.get(), sig.get(), &sig_len) != 1) { |
120 |
return errors::Internal("DigestFinal (signature compute) failed."); |
128 |
return errors::Internal("DigestFinal (signature compute) failed."); |
121 |
} |
129 |
} |
122 |
EVP_MD_CTX_cleanup(md_ctx.get()); |
130 |
EVP_MD_CTX_free(md_ctx.get()); |
123 |
return Base64Encode(StringPiece(reinterpret_cast<char*>(sig.get()), sig_len), |
131 |
return Base64Encode(StringPiece(reinterpret_cast<char*>(sig.get()), sig_len), |
124 |
signature); |
132 |
signature); |
125 |
} |
133 |
} |