blob: 8de7a62c9b22c8aca0d00458ef224de967437fab [file] [log] [blame]
Jeff Thompson47c93cf2013-08-09 00:38:48 -07001/**
2 * @author: Jeff Thompson
3 * See COPYING for copyright and distribution information.
4 */
5
6#ifndef NDN_KEY_CHAIN_HPP
Jeff Thompson2d27e2f2013-08-09 12:55:00 -07007#define NDN_KEY_CHAIN_HPP
Jeff Thompson47c93cf2013-08-09 00:38:48 -07008
Jeff Thompson3392fd62013-08-09 12:20:04 -07009#include "data.hpp"
Jeff Thompson47c93cf2013-08-09 00:38:48 -070010
11namespace ndn {
12
13class KeyChain {
14public:
15 /**
Jeff Thompson3c73da42013-08-12 11:19:05 -070016 * In data, set the signed info publisher public key digest and key locator key to the public key and set the
17 * signature using the private key.
Jeff Thompsonade5b1e2013-08-09 12:16:45 -070018 * Note: the caller must make sure the timestamp is correct, for example with
19 * data.getSignedInfo().setTimestampMilliseconds(time(NULL) * 1000.0).
Jeff Thompson3c73da42013-08-12 11:19:05 -070020 * @param data The Data object to sign and set the key and signature.
21 * @param publicKeyDer A pointer to a buffer with the DER-encoded public key.
22 * @param publicKeyDerLength The number of bytes in publicKeyDer.
23 * @param privateKeyDer A pointer to a buffer with the DER-encoded private key.
24 * @param privateKeyDerLength The number of bytes in privateKeyDer.
25 */
26 static void sign
27 (Data &data, const unsigned char *publicKeyDer, unsigned int publicKeyDerLength,
28 const unsigned char *privateKeyDer, unsigned int privateKeyDerLength);
29
30 /**
31 * Call sign with the default public and private keys.
32 * @param data
Jeff Thompson47c93cf2013-08-09 00:38:48 -070033 */
34 static void defaultSign(Data &data);
Jeff Thompson47c93cf2013-08-09 00:38:48 -070035};
36
37}
38
39#endif