blob: b328001b1eeefcb934b8cab117bbfee4e66b496e [file] [log] [blame]
Jeff Thompson5cae5e52013-07-10 19:41:20 -07001/**
2 * @author: Jeff Thompson
3 * See COPYING for copyright and distribution information.
4 */
5
6#include <cstdlib>
7#include <sstream>
8#include <iostream>
Jeff Thompson27e02cd2013-08-01 16:56:05 -07009#if 0
Jeff Thompson40d67ce2013-07-15 17:33:01 -070010#include <boost/date_time/posix_time/posix_time_types.hpp>
11#include <boost/date_time/posix_time/time_serialize.hpp>
12#include <boost/date_time/gregorian/gregorian.hpp>
Jeff Thompson27e02cd2013-08-01 16:56:05 -070013#endif
Jeff Thompson56ec9e22013-08-02 11:34:07 -070014#include <ndn-cpp/data.hpp>
Jeff Thompson5cae5e52013-07-10 19:41:20 -070015
16using namespace std;
17using namespace ndn;
Jeff Thompson27e02cd2013-08-01 16:56:05 -070018#if 0
Jeff Thompson40d67ce2013-07-15 17:33:01 -070019using namespace boost::posix_time;
20using namespace boost::gregorian;
Jeff Thompson27e02cd2013-08-01 16:56:05 -070021#endif
Jeff Thompson5cae5e52013-07-10 19:41:20 -070022
Jeff Thompson56ec9e22013-08-02 11:34:07 -070023unsigned char Data1[] = {
240x04, 0x82, // NDN Data
Jeff Thompson5cae5e52013-07-10 19:41:20 -070025 0x02, 0xaa, // Signature
26 0x03, 0xb2, // SignatureBits
27 0x08, 0x85, 0x20, 0xea, 0xb5, 0xb0, 0x63, 0xda, 0x94, 0xe9, 0x68, 0x7a,
28 0x8e, 0x65, 0x60, 0xe0, 0xc6, 0x43, 0x96, 0xd9, 0x69, 0xb4, 0x40, 0x72, 0x52, 0x00, 0x2c, 0x8e, 0x2a, 0xf5,
29 0x47, 0x12, 0x59, 0x93, 0xda, 0xed, 0x82, 0xd0, 0xf8, 0xe6, 0x65, 0x09, 0x87, 0x84, 0x54, 0xc7, 0xce, 0x9a,
30 0x93, 0x0d, 0x47, 0xf1, 0xf9, 0x3b, 0x98, 0x78, 0x2c, 0x22, 0x21, 0xd9, 0x2b, 0xda, 0x03, 0x30, 0x84, 0xf3,
31 0xc5, 0x52, 0x64, 0x2b, 0x1d, 0xde, 0x50, 0xe0, 0xee, 0xca, 0xa2, 0x73, 0x7a, 0x93, 0x30, 0xa8, 0x47, 0x7f,
32 0x6f, 0x41, 0xb0, 0xc8, 0x6e, 0x89, 0x1c, 0xcc, 0xf9, 0x01, 0x44, 0xc3, 0x08, 0xcf, 0x77, 0x47, 0xfc, 0xed,
33 0x48, 0xf0, 0x4c, 0xe9, 0xc2, 0x3b, 0x7d, 0xef, 0x6e, 0xa4, 0x80, 0x40, 0x9e, 0x43, 0xb6, 0x77, 0x7a, 0x1d,
34 0x51, 0xed, 0x98, 0x33, 0x93, 0xdd, 0x88, 0x01, 0x0e, 0xd3,
35 0x00,
36 0x00,
37 0xf2, 0xfa, 0x9d, 0x6e, 0x64, 0x6e, 0x00, 0xfa, 0x9d, 0x61, 0x62, 0x63, 0x00, 0x00, // Name
38 0x01, 0xa2, // SignedInfo
39 0x03, 0xe2, // PublisherPublicKeyDigest
40 0x02, 0x85, 0xb5, 0x50, 0x6b, 0x1a,
41 0xba, 0x3d, 0xa7, 0x76, 0x1b, 0x0f, 0x8d, 0x61, 0xa4, 0xaa, 0x7e, 0x3b, 0x6d, 0x15, 0xb4, 0x26, 0xfe, 0xb5,
42 0xbd, 0xa8, 0x23, 0x89, 0xac, 0xa7, 0x65, 0xa3, 0xb8, 0x1c,
43 0x00,
Jeff Thompson5cae5e52013-07-10 19:41:20 -070044 0x02, 0xba, // Timestamp
45 0xb5, 0x05, 0x1d, 0xde, 0xe9, 0x5b, 0xdb,
46 0x00,
Jeff Thompson5cae5e52013-07-10 19:41:20 -070047 0x01, 0xe2, // KeyLocator
48 0x01, 0xda, // Key
49 0x0a, 0x95, 0x30, 0x81, 0x9f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
50 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x81, 0x8d, 0x00, 0x30, 0x81, 0x89, 0x02, 0x81,
51 0x81, 0x00, 0xe1, 0x7d, 0x30, 0xa7, 0xd8, 0x28, 0xab, 0x1b, 0x84, 0x0b, 0x17, 0x54, 0x2d, 0xca, 0xf6, 0x20,
52 0x7a, 0xfd, 0x22, 0x1e, 0x08, 0x6b, 0x2a, 0x60, 0xd1, 0x6c, 0xb7, 0xf5, 0x44, 0x48, 0xba, 0x9f, 0x3f, 0x08,
53 0xbc, 0xd0, 0x99, 0xdb, 0x21, 0xdd, 0x16, 0x2a, 0x77, 0x9e, 0x61, 0xaa, 0x89, 0xee, 0xe5, 0x54, 0xd3, 0xa4,
54 0x7d, 0xe2, 0x30, 0xbc, 0x7a, 0xc5, 0x90, 0xd5, 0x24, 0x06, 0x7c, 0x38, 0x98, 0xbb, 0xa6, 0xf5, 0xdc, 0x43,
55 0x60, 0xb8, 0x45, 0xed, 0xa4, 0x8c, 0xbd, 0x9c, 0xf1, 0x26, 0xa7, 0x23, 0x44, 0x5f, 0x0e, 0x19, 0x52, 0xd7,
56 0x32, 0x5a, 0x75, 0xfa, 0xf5, 0x56, 0x14, 0x4f, 0x9a, 0x98, 0xaf, 0x71, 0x86, 0xb0, 0x27, 0x86, 0x85, 0xb8,
57 0xe2, 0xc0, 0x8b, 0xea, 0x87, 0x17, 0x1b, 0x4d, 0xee, 0x58, 0x5c, 0x18, 0x28, 0x29, 0x5b, 0x53, 0x95, 0xeb,
58 0x4a, 0x17, 0x77, 0x9f, 0x02, 0x03, 0x01, 0x00, 0x01,
59 0x00,
60 0x00,
61 0x00,
62 0x01, 0x9a, // Content
63 0xc5, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x21,
64 0x00,
650x00,
661
67};
68
Jeff Thompson27e02cd2013-08-01 16:56:05 -070069#if 0
Jeff Thompson40d67ce2013-07-15 17:33:01 -070070const ptime UNIX_EPOCH_TIME = ptime (date (1970, Jan, 1));
Jeff Thompson27e02cd2013-08-01 16:56:05 -070071#endif
Jeff Thompson40d67ce2013-07-15 17:33:01 -070072
Jeff Thompson5cae5e52013-07-10 19:41:20 -070073int main(int argc, char** argv)
74{
75 try {
Jeff Thompson56ec9e22013-08-02 11:34:07 -070076 Data data;
Jeff Thompson67e9e0a2013-08-02 19:16:19 -070077 data.wireDecode(Data1, sizeof(Data1));
Jeff Thompson56ec9e22013-08-02 11:34:07 -070078 cout << "Data name " << data.getName().to_uri() << endl;
Jeff Thompson27e02cd2013-08-01 16:56:05 -070079#if 0
Jeff Thompson56ec9e22013-08-02 11:34:07 -070080 ptime timestamp = UNIX_EPOCH_TIME + milliseconds(data.getSignedInfo().getTimestampMilliseconds());
81 cout << "Data timestamp " << timestamp.date().year() << "/" << timestamp.date().month() << "/" << timestamp.date().day()
Jeff Thompson40d67ce2013-07-15 17:33:01 -070082 << " " << timestamp.time_of_day().hours() << ":" << timestamp.time_of_day().minutes() << ":" << timestamp.time_of_day().seconds() << endl;
Jeff Thompson27e02cd2013-08-01 16:56:05 -070083#endif
Jeff Thompson5cae5e52013-07-10 19:41:20 -070084
Jeff Thompson67e9e0a2013-08-02 19:16:19 -070085 ptr_lib::shared_ptr<vector<unsigned char> > encoding = data.wireEncode();
Jeff Thompson56ec9e22013-08-02 11:34:07 -070086 cout << "Data encoding length " << encoding->size() << " vs. sizeof(Data1) " << sizeof(Data1) << endl;
Jeff Thompson5cae5e52013-07-10 19:41:20 -070087
Jeff Thompson56ec9e22013-08-02 11:34:07 -070088 Data reDecodedData;
Jeff Thompson67e9e0a2013-08-02 19:16:19 -070089 reDecodedData.wireDecode(*encoding);
Jeff Thompson56ec9e22013-08-02 11:34:07 -070090 cout << "Re-decoded Data name " << reDecodedData.getName().to_uri() << endl;
Jeff Thompson27e02cd2013-08-01 16:56:05 -070091#if 0
Jeff Thompson56ec9e22013-08-02 11:34:07 -070092 timestamp = UNIX_EPOCH_TIME + milliseconds(reDecodedData.getSignedInfo().getTimestampMilliseconds());
93 cout << "Re-decoded Data timestamp " << timestamp.date().year() << "/" << timestamp.date().month() << "/" << timestamp.date().day() << endl;
Jeff Thompson27e02cd2013-08-01 16:56:05 -070094#endif
Jeff Thompson5cae5e52013-07-10 19:41:20 -070095 } catch (exception &e) {
96 cout << "exception: " << e.what() << endl;
97 }
98 return 0;
99}