X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fcertificates.h;h=9caea5a786cd8e8a15e1acde2c8c48922c27079d;hb=d5ec30b6d746177e97707085b9e6b709e41ecc20;hp=1c342acb227bb36d63334f93a3b45af06a23691c;hpb=fd8a665cbb0a9a44995f88567747e2379a6f4098;p=libdcp.git diff --git a/src/certificates.h b/src/certificates.h index 1c342acb..9caea5a7 100644 --- a/src/certificates.h +++ b/src/certificates.h @@ -1,3 +1,22 @@ +/* + Copyright (C) 2012 Carl Hetherington + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + #ifndef LIBDCP_CERTIFICATES_H #define LIBDCP_CERTIFICATES_H @@ -5,6 +24,7 @@ #include #include #include +#undef X509_NAME #include class certificates; @@ -18,6 +38,11 @@ namespace libdcp { class Certificate : public boost::noncopyable { public: + Certificate () + : _certificate (0) + {} + + Certificate (std::string const &); Certificate (X509 *); ~Certificate (); @@ -26,9 +51,13 @@ public: std::string serial () const; std::string subject () const; - static std::string name_for_xml (std::string const &); + std::string thumbprint () const; private: + static std::string name_for_xml (X509_NAME *); + static std::string asn_to_utf8 (ASN1_STRING *); + static std::string get_name_part (X509_NAME *, int); + X509* _certificate; }; @@ -36,7 +65,8 @@ class CertificateChain { public: CertificateChain () {} - CertificateChain (std::string const &); + + void add (boost::shared_ptr); boost::shared_ptr root () const; boost::shared_ptr leaf () const;