X-Git-Url: http://plrg.eecs.uci.edu/git/?p=folly.git;a=blobdiff_plain;f=folly%2Fssl%2FOpenSSLCertUtils.cpp;h=ac7cd7414f2159e68be9ce587e0624080cd9aa2e;hp=9b9efa3eb3f89401f2e303a485dbda7efb00f207;hb=192d78d40551ec5d9aade5ca72dd6e33ad700a2b;hpb=0d13183a2c02539d216e6f16f8b27a8ffb359190 diff --git a/folly/ssl/OpenSSLCertUtils.cpp b/folly/ssl/OpenSSLCertUtils.cpp index 9b9efa3e..ac7cd741 100644 --- a/folly/ssl/OpenSSLCertUtils.cpp +++ b/folly/ssl/OpenSSLCertUtils.cpp @@ -216,5 +216,30 @@ std::vector OpenSSLCertUtils::readCertsFromBuffer( return certs; } +std::array OpenSSLCertUtils::getDigestSha1( + X509& x509) { + unsigned int len; + std::array md; + int rc = X509_digest(&x509, EVP_sha1(), md.data(), &len); + + if (rc <= 0) { + throw std::runtime_error("Could not calculate SHA1 digest for cert"); + } + return md; +} + +std::array OpenSSLCertUtils::getDigestSha256( + X509& x509) { + unsigned int len; + std::array md; + int rc = X509_digest(&x509, EVP_sha256(), md.data(), &len); + + if (rc <= 0) { + throw std::runtime_error("Could not calculate SHA256 digest for cert"); + } + return md; +} + + } // namespace ssl } // namespace folly