blob: 4ffb2b0524ede20cc498298f00f8fe921de6657f [file] [log] [blame]
henrike@webrtc.org47be73b2014-05-13 18:00:261/*
2 * Copyright 2012 The WebRTC Project Authors. All rights reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11#ifndef WEBRTC_BASE_SSLFINGERPRINT_H_
12#define WEBRTC_BASE_SSLFINGERPRINT_H_
13
14#include <string>
15
Karl Wiberg927aa772015-04-20 12:03:0716#include "webrtc/base/basictypes.h"
jbauchbb6decf2016-03-20 13:15:4317#include "webrtc/base/copyonwritebuffer.h"
henrike@webrtc.org47be73b2014-05-13 18:00:2618#include "webrtc/base/sslidentity.h"
19
20namespace rtc {
21
22class SSLCertificate;
23
24struct SSLFingerprint {
25 static SSLFingerprint* Create(const std::string& algorithm,
26 const rtc::SSLIdentity* identity);
27
28 static SSLFingerprint* Create(const std::string& algorithm,
29 const rtc::SSLCertificate* cert);
30
31 static SSLFingerprint* CreateFromRfc4572(const std::string& algorithm,
32 const std::string& fingerprint);
33
Peter Boström07e22e62015-10-07 10:23:2134 SSLFingerprint(const std::string& algorithm,
35 const uint8_t* digest_in,
henrike@webrtc.org47be73b2014-05-13 18:00:2636 size_t digest_len);
37
38 SSLFingerprint(const SSLFingerprint& from);
39
40 bool operator==(const SSLFingerprint& other) const;
41
42 std::string GetRfc4572Fingerprint() const;
43
mikescarlett2ceebfa2016-04-30 03:20:5444 std::string ToString() const;
henrike@webrtc.org47be73b2014-05-13 18:00:2645
46 std::string algorithm;
jbauchbb6decf2016-03-20 13:15:4347 rtc::CopyOnWriteBuffer digest;
henrike@webrtc.org47be73b2014-05-13 18:00:2648};
49
50} // namespace rtc
51
52#endif // WEBRTC_BASE_SSLFINGERPRINT_H_