1 // Copyright 2012 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CRYPTO_EC_SIGNATURE_CREATOR_IMPL_H_
6 #define CRYPTO_EC_SIGNATURE_CREATOR_IMPL_H_
12 #include "base/compiler_specific.h"
13 #include "base/containers/span.h"
14 #include "base/memory/raw_ptr.h"
15 #include "crypto/ec_signature_creator.h"
19 class ECSignatureCreatorImpl : public ECSignatureCreator {
21 explicit ECSignatureCreatorImpl(ECPrivateKey* key);
23 ECSignatureCreatorImpl(const ECSignatureCreatorImpl&) = delete;
24 ECSignatureCreatorImpl& operator=(const ECSignatureCreatorImpl&) = delete;
26 ~ECSignatureCreatorImpl() override;
28 bool Sign(base::span<const uint8_t> data,
29 std::vector<uint8_t>* signature) override;
31 bool DecodeSignature(const std::vector<uint8_t>& der_sig,
32 std::vector<uint8_t>* out_raw_sig) override;
35 raw_ptr<ECPrivateKey> key_;
40 #endif // CRYPTO_EC_SIGNATURE_CREATOR_IMPL_H_