Web Inspector: Network: add button to show system certificate dialog
[WebKit-https.git] / Source / WebCore / platform / network / cocoa / CertificateInfoCocoa.mm
1 /*
2  * Copyright (C) 2010, 2015 Apple Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23  * THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 #include "config.h"
27 #include "CertificateInfo.h"
28
29 namespace WebCore {
30
31 #ifndef NDEBUG
32 void CertificateInfo::dump() const
33 {
34 #if HAVE(SEC_TRUST_SERIALIZATION)
35     if (m_trust) {
36         CFIndex entries = SecTrustGetCertificateCount(trust());
37
38         NSLog(@"CertificateInfo SecTrust\n");
39         NSLog(@"  Entries: %ld\n", entries);
40         for (CFIndex i = 0; i < entries; ++i) {
41             RetainPtr<CFStringRef> summary = adoptCF(SecCertificateCopySubjectSummary(SecTrustGetCertificateAtIndex(trust(), i)));
42             NSLog(@"  %@", (__bridge NSString *)summary.get());
43         }
44
45         return;
46     }
47 #endif
48     if (m_certificateChain) {
49         CFIndex entries = CFArrayGetCount(m_certificateChain.get());
50
51         NSLog(@"CertificateInfo (Certificate Chain)\n");
52         NSLog(@"  Entries: %ld\n", entries);
53         for (CFIndex i = 0; i < entries; ++i) {
54             RetainPtr<CFStringRef> summary = adoptCF(SecCertificateCopySubjectSummary(checked_cf_cast<SecCertificateRef>(CFArrayGetValueAtIndex(m_certificateChain.get(), i))));
55             NSLog(@"  %@", (__bridge NSString *)summary.get());
56         }
57
58         return;
59     }
60
61     NSLog(@"CertificateInfo (Empty)\n");
62 }
63 #endif
64
65 } // namespace WebCore