Home | History | Annotate | Download | only in cert
      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 
     16 namespace base {
     17 class Time;
     18 }  // namespace base
     19 
     20 namespace net {
     21 
     22 // A collection of helper functions to fetch data from OpenSSL X509 certificates
     23 // into more convenient std / base datatypes.
     24 namespace x509_util {
     25 
     26 bool NET_EXPORT ParsePrincipalKeyAndValueByIndex(X509_NAME* name,
     27                                                  int index,
     28                                                  std::string* key,
     29                                                  std::string* value);
     30 
     31 bool NET_EXPORT ParsePrincipalValueByIndex(X509_NAME* name,
     32                                            int index,
     33                                            std::string* value);
     34 
     35 bool NET_EXPORT ParsePrincipalValueByNID(X509_NAME* name,
     36                                          int nid,
     37                                          std::string* value);
     38 
     39 bool 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