x509_util_openssl.h revision c2e0dbddbe15c98d52c4786dac06cb8952a8ae6d
1// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef NET_CERT_X509_UTIL_OPENSSL_H_ 6#define NET_CERT_X509_UTIL_OPENSSL_H_ 7 8#include <openssl/asn1.h> 9#include <openssl/x509v3.h> 10 11#include <string> 12#include <vector> 13 14#include "net/base/net_export.h" 15 16namespace base { 17class Time; 18} // namespace base 19 20namespace net { 21 22// A collection of helper functions to fetch data from OpenSSL X509 certificates 23// into more convenient std / base datatypes. 24namespace x509_util { 25 26bool NET_EXPORT ParsePrincipalKeyAndValueByIndex(X509_NAME* name, 27 int index, 28 std::string* key, 29 std::string* value); 30 31bool NET_EXPORT ParsePrincipalValueByIndex(X509_NAME* name, 32 int index, 33 std::string* value); 34 35bool NET_EXPORT ParsePrincipalValueByNID(X509_NAME* name, 36 int nid, 37 std::string* value); 38 39bool NET_EXPORT ParseDate(ASN1_TIME* x509_time, base::Time* time); 40 41} // namespace x509_util 42 43} // namespace net 44 45#endif // NET_CERT_X509_UTIL_OPENSSL_H_ 46