blob: 8ef67cd7f3dbbab0f1a528731fd46dfa86dbf19a [file] [log] [blame]
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001// 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
11namespace crypto {
12
13class 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_