Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / chrome / third_party / mozilla_security_manager / nsNSSCertificate.cpp
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@netscape.com>
23  *   Javier Delgadillo <javi@netscape.com>
24  *   Kai Engert <kengert@redhat.com>
25  *   Jesper Kristensen <mail@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 #include "chrome/grit/generated_resources.h"
46 #include "ui/base/l10n/l10n_util.h"
47
48 namespace mozilla_security_manager {
49
50 std::string GetCertTitle(CERTCertificate* cert) {
51   std::string rv;
52   if (cert->nickname) {
53     rv = cert->nickname;
54   } else {
55     char* cn = CERT_GetCommonName(&cert->subject);
56     if (cn) {
57       rv = cn;
58       PORT_Free(cn);
59     } else if (cert->subjectName) {
60       rv = cert->subjectName;
61     } else if (cert->emailAddr) {
62       rv = cert->emailAddr;
63     }
64   }
65   // TODO(mattm): Should we return something other than an empty string when all
66   // the checks fail?
67   return rv;
68 }
69
70 std::string GetCertTokenName(CERTCertificate* cert) {
71   std::string token;
72   if (cert->slot) {
73     token = PK11_GetTokenName(cert->slot);
74   }
75   return token;
76 }
77
78 }  // namespace mozilla_security_manager