Upstream version 11.40.271.0
[platform/framework/web/crosswalk.git] / src / content / child / webcrypto / openssl / rsa_sign_openssl.h
1 // Copyright 2014 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 CONTENT_CHILD_WEBCRYPTO_OPENSSL_RSA_SIGN_OPENSSL_H_
6 #define CONTENT_CHILD_WEBCRYPTO_OPENSSL_RSA_SIGN_OPENSSL_H_
7
8 #include <stdint.h>
9
10 #include <vector>
11
12 namespace blink {
13 class WebCryptoKey;
14 }
15
16 namespace content {
17
18 namespace webcrypto {
19
20 class CryptoData;
21 class Status;
22
23 // Helper functions for doing RSA-SSA signing and verification
24 // (both PKCS1-v1_5 and PSS flavor).
25 //
26 // The salt length parameter is only relevant when the key is for RSA-PSS. In
27 // other cases it should be set to zero.
28
29 Status RsaSign(const blink::WebCryptoKey& key,
30                unsigned int pss_salt_length_bytes,
31                const CryptoData& data,
32                std::vector<uint8_t>* buffer);
33
34 Status RsaVerify(const blink::WebCryptoKey& key,
35                  unsigned int pss_salt_length_bytes,
36                  const CryptoData& signature,
37                  const CryptoData& data,
38                  bool* signature_match);
39
40 }  // namespace webcrypto
41
42 }  // namespace content
43
44 #endif  // CONTENT_CHILD_WEBCRYPTO_OPENSSL_RSA_SIGN_OPENSSL_H_