Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / crypto / ec_signature_creator_impl.h
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
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 "base/compiler_specific.h"
9 #include "crypto/ec_signature_creator.h"
10
11 namespace crypto {
12
13 class ECSignatureCreatorImpl : public ECSignatureCreator {
14  public:
15   explicit ECSignatureCreatorImpl(ECPrivateKey* key);
16   virtual ~ECSignatureCreatorImpl();
17
18   virtual bool Sign(const uint8* data,
19                     int data_len,
20                     std::vector<uint8>* signature) override;
21
22   virtual bool DecodeSignature(const std::vector<uint8>& der_sig,
23                                std::vector<uint8>* out_raw_sig) override;
24
25  private:
26   ECPrivateKey* key_;
27   size_t signature_len_;
28
29   DISALLOW_COPY_AND_ASSIGN(ECSignatureCreatorImpl);
30 };
31
32 }  // namespace crypto
33
34 #endif  // CRYPTO_EC_SIGNATURE_CREATOR_IMPL_H_