blob: 2e3f09200cfdc86d385fb665ab061d9895d2234e [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_WEBCRYPTO_ALGORITHMS_RSA_SIGN_H_
#define COMPONENTS_WEBCRYPTO_ALGORITHMS_RSA_SIGN_H_
#include <stdint.h>
#include <vector>
namespace blink {
class WebCryptoKey;
}
namespace webcrypto {
class CryptoData;
class Status;
// Helper functions for doing RSA-SSA signing and verification
// (both PKCS1-v1_5 and PSS flavor).
//
// The salt length parameter is only relevant when the key is for RSA-PSS. In
// other cases it should be set to zero.
Status RsaSign(const blink::WebCryptoKey& key,
unsigned int pss_salt_length_bytes,
const CryptoData& data,
std::vector<uint8_t>* buffer);
Status RsaVerify(const blink::WebCryptoKey& key,
unsigned int pss_salt_length_bytes,
const CryptoData& signature,
const CryptoData& data,
bool* signature_match);
} // namespace webcrypto
#endif // COMPONENTS_WEBCRYPTO_ALGORITHMS_RSA_SIGN_H_