1 /* ***** BEGIN LICENSE BLOCK ***** 2 * Version: MPL 1.1/GPL 2.0/LGPL 2.1 3 * 4 * The contents of this file are subject to the Mozilla Public License Version 5 * 1.1 (the "License"); you may not use this file except in compliance with 6 * the License. You may obtain a copy of the License at 7 * http://www.mozilla.org/MPL/ 8 * 9 * Software distributed under the License is distributed on an "AS IS" basis, 10 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 11 * for the specific language governing rights and limitations under the 12 * License. 13 * 14 * The Original Code is the Netscape security libraries. 15 * 16 * The Initial Developer of the Original Code is 17 * Netscape Communications Corporation. 18 * Portions created by the Initial Developer are Copyright (C) 2000 19 * the Initial Developer. All Rights Reserved. 20 * 21 * Contributor(s): 22 * Ian McGreer <mcgreer (at) netscape.com> 23 * Javier Delgadillo <javi (at) netscape.com> 24 * Kai Engert <kengert (at) redhat.com> 25 * Jesper Kristensen <mail (at) jesperkristensen.dk> 26 * 27 * Alternatively, the contents of this file may be used under the terms of 28 * either the GNU General Public License Version 2 or later (the "GPL"), or 29 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), 30 * in which case the provisions of the GPL or the LGPL are applicable instead 31 * of those above. If you wish to allow use of your version of this file only 32 * under the terms of either the GPL or the LGPL, and not to allow others to 33 * use your version of this file under the terms of the MPL, indicate your 34 * decision by deleting the provisions above and replace them with the notice 35 * and other provisions required by the GPL or the LGPL. If you do not delete 36 * the provisions above, a recipient may use your version of this file under 37 * the terms of any one of the MPL, the GPL or the LGPL. 38 * 39 * ***** END LICENSE BLOCK ***** */ 40 41 #include "chrome/third_party/mozilla_security_manager/nsNSSCertificate.h" 42 43 #include <pk11func.h> 44 45 namespace mozilla_security_manager { 46 47 std::string GetCertTitle(CERTCertificate* cert) { 48 std::string rv; 49 if (cert->nickname) { 50 rv = cert->nickname; 51 } else { 52 char* cn = CERT_GetCommonName(&cert->subject); 53 if (cn) { 54 rv = cn; 55 PORT_Free(cn); 56 } else if (cert->subjectName) { 57 rv = cert->subjectName; 58 } else if (cert->emailAddr) { 59 rv = cert->emailAddr; 60 } 61 } 62 // TODO(mattm): Should we return something other than an empty string when all 63 // the checks fail? 64 return rv; 65 } 66 67 std::string GetCertTokenName(CERTCertificate* cert) { 68 std::string token; 69 if (cert->slot) { 70 token = PK11_GetTokenName(cert->slot); 71 } 72 return token; 73 } 74 75 } // namespace mozilla_security_manager 76