[M120 Migration][VD] Enable direct rendering for TVPlus
[platform/framework/web/chromium-efl.git] / crypto / ec_signature_creator_impl.h
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.
4
5 #ifndef CRYPTO_EC_SIGNATURE_CREATOR_IMPL_H_
6 #define CRYPTO_EC_SIGNATURE_CREATOR_IMPL_H_
7
8 #include <stdint.h>
9
10 #include <vector>
11
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"
16
17 namespace crypto {
18
19 class ECSignatureCreatorImpl : public ECSignatureCreator {
20  public:
21   explicit ECSignatureCreatorImpl(ECPrivateKey* key);
22
23   ECSignatureCreatorImpl(const ECSignatureCreatorImpl&) = delete;
24   ECSignatureCreatorImpl& operator=(const ECSignatureCreatorImpl&) = delete;
25
26   ~ECSignatureCreatorImpl() override;
27
28   bool Sign(base::span<const uint8_t> data,
29             std::vector<uint8_t>* signature) override;
30
31   bool DecodeSignature(const std::vector<uint8_t>& der_sig,
32                        std::vector<uint8_t>* out_raw_sig) override;
33
34  private:
35   raw_ptr<ECPrivateKey> key_;
36 };
37
38 }  // namespace crypto
39
40 #endif  // CRYPTO_EC_SIGNATURE_CREATOR_IMPL_H_