This change just wraps the openssl key derivation functions in a simple interface in a similar way to how we do it for messagedigest.h so we aren't coupled to openssl in the core implementation. Bug: webrtc:9917 Change-Id: I8556bd6e38b7da34d93abbe29415c3366f6532ba Reviewed-on: https://webrtc-review.googlesource.com/c/107981 Reviewed-by: Qingsi Wang <qingsi@webrtc.org> Commit-Queue: Benjamin Wright <benwright@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25440}
32 lines
944 B
C++
32 lines
944 B
C++
/*
|
|
* Copyright 2018 The WebRTC Project Authors. All rights reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
#include "rtc_base/key_derivation.h"
|
|
|
|
#include "absl/memory/memory.h"
|
|
#include "rtc_base/openssl_key_derivation_hkdf.h"
|
|
|
|
namespace rtc {
|
|
|
|
KeyDerivation::KeyDerivation() = default;
|
|
KeyDerivation::~KeyDerivation() = default;
|
|
|
|
// static
|
|
std::unique_ptr<KeyDerivation> KeyDerivation::Create(
|
|
KeyDerivationAlgorithm key_derivation_algorithm) {
|
|
switch (key_derivation_algorithm) {
|
|
case KeyDerivationAlgorithm::HKDF_SHA256:
|
|
return absl::make_unique<OpenSSLKeyDerivationHKDF>();
|
|
}
|
|
RTC_NOTREACHED();
|
|
}
|
|
|
|
} // namespace rtc
|