123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- // Copyright 2014 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #include "components/webcrypto/algorithm_implementation.h"
- #include "base/notreached.h"
- #include "components/webcrypto/algorithms/asymmetric_key_util.h"
- #include "components/webcrypto/blink_key_handle.h"
- #include "components/webcrypto/status.h"
- namespace webcrypto {
- AlgorithmImplementation::~AlgorithmImplementation() {
- }
- Status AlgorithmImplementation::Encrypt(
- const blink::WebCryptoAlgorithm& algorithm,
- const blink::WebCryptoKey& key,
- base::span<const uint8_t> data,
- std::vector<uint8_t>* buffer) const {
- return Status::ErrorUnsupported();
- }
- Status AlgorithmImplementation::Decrypt(
- const blink::WebCryptoAlgorithm& algorithm,
- const blink::WebCryptoKey& key,
- base::span<const uint8_t> data,
- std::vector<uint8_t>* buffer) const {
- return Status::ErrorUnsupported();
- }
- Status AlgorithmImplementation::Sign(const blink::WebCryptoAlgorithm& algorithm,
- const blink::WebCryptoKey& key,
- base::span<const uint8_t> data,
- std::vector<uint8_t>* buffer) const {
- return Status::ErrorUnsupported();
- }
- Status AlgorithmImplementation::Verify(
- const blink::WebCryptoAlgorithm& algorithm,
- const blink::WebCryptoKey& key,
- base::span<const uint8_t> signature,
- base::span<const uint8_t> data,
- bool* signature_match) const {
- return Status::ErrorUnsupported();
- }
- Status AlgorithmImplementation::Digest(
- const blink::WebCryptoAlgorithm& algorithm,
- base::span<const uint8_t> data,
- std::vector<uint8_t>* buffer) const {
- return Status::ErrorUnsupported();
- }
- Status AlgorithmImplementation::GenerateKey(
- const blink::WebCryptoAlgorithm& algorithm,
- bool extractable,
- blink::WebCryptoKeyUsageMask usages,
- GenerateKeyResult* result) const {
- return Status::ErrorUnsupported();
- }
- Status AlgorithmImplementation::DeriveBits(
- const blink::WebCryptoAlgorithm& algorithm,
- const blink::WebCryptoKey& base_key,
- bool has_optional_length_bits,
- unsigned int optional_length_bits,
- std::vector<uint8_t>* derived_bytes) const {
- return Status::ErrorUnsupported();
- }
- Status AlgorithmImplementation::GetKeyLength(
- const blink::WebCryptoAlgorithm& key_length_algorithm,
- bool* has_length_bits,
- unsigned int* length_bits) const {
- return Status::ErrorUnsupported();
- }
- Status AlgorithmImplementation::ImportKey(
- blink::WebCryptoKeyFormat format,
- base::span<const uint8_t> key_data,
- const blink::WebCryptoAlgorithm& algorithm,
- bool extractable,
- blink::WebCryptoKeyUsageMask usages,
- blink::WebCryptoKey* key) const {
- return Status::ErrorUnsupported();
- }
- Status AlgorithmImplementation::ExportKey(blink::WebCryptoKeyFormat format,
- const blink::WebCryptoKey& key,
- std::vector<uint8_t>* buffer) const {
- return Status::ErrorUnsupported();
- }
- Status AlgorithmImplementation::SerializeKeyForClone(
- const blink::WebCryptoKey& key,
- blink::WebVector<uint8_t>* key_data) const {
- switch (key.GetType()) {
- case blink::kWebCryptoKeyTypeSecret:
- *key_data = GetSymmetricKeyData(key);
- return Status::Success();
- case blink::kWebCryptoKeyTypePublic: {
- std::vector<uint8_t> vec;
- Status status = ExportPKeySpki(GetEVP_PKEY(key), &vec);
- if (status.IsSuccess()) {
- *key_data = vec;
- }
- return status;
- }
- case blink::kWebCryptoKeyTypePrivate: {
- std::vector<uint8_t> vec;
- Status status = ExportPKeyPkcs8(GetEVP_PKEY(key), &vec);
- if (status.IsSuccess()) {
- *key_data = vec;
- }
- return status;
- }
- }
- NOTREACHED();
- return Status::ErrorUnexpected();
- }
- Status AlgorithmImplementation::DeserializeKeyForClone(
- const blink::WebCryptoKeyAlgorithm& algorithm,
- blink::WebCryptoKeyType type,
- bool extractable,
- blink::WebCryptoKeyUsageMask usages,
- base::span<const uint8_t> key_data,
- blink::WebCryptoKey* key) const {
- return Status::ErrorUnsupported();
- }
- } // namespace webcrypto
|