blob: 4ffb2b0524ede20cc498298f00f8fe921de6657f [file] [log] [blame]
henrike@webrtc.orgf0488722014-05-13 18:00:26 +00001/*
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 Wiberg94784372015-04-20 14:03:07 +020016#include "webrtc/base/basictypes.h"
jbaucheec21bd2016-03-20 06:15:43 -070017#include "webrtc/base/copyonwritebuffer.h"
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000018#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öm0c4e06b2015-10-07 12:23:21 +020034 SSLFingerprint(const std::string& algorithm,
35 const uint8_t* digest_in,
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000036 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
mikescarlette7748672016-04-29 20:20:54 -070044 std::string ToString() const;
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000045
46 std::string algorithm;
jbaucheec21bd2016-03-20 06:15:43 -070047 rtc::CopyOnWriteBuffer digest;
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000048};
49
50} // namespace rtc
51
52#endif // WEBRTC_BASE_SSLFINGERPRINT_H_