blob: bc4a324f9d7db5fe60b1842b4f2e1417a933f119 [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;
77 data.decode(Data1, sizeof(Data1));
78 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 Thompson56ec9e22013-08-02 11:34:07 -070085 ptr_lib::shared_ptr<vector<unsigned char> > encoding = data.encode();
86 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;
89 reDecodedData.decode(*encoding);
90 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}