blob: de5d558509149a526500d1f03be2094a950d7bd3 [file] [log] [blame]
tylerliu182bc532020-09-25 01:54:45 -07001/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2/**
3 * Copyright (c) 2017-2020, Regents of the University of California.
4 *
5 * This file is part of ndncert, a certificate management system based on NDN.
6 *
7 * ndncert is free software: you can redistribute it and/or modify it under the terms
8 * of the GNU General Public License as published by the Free Software Foundation, either
9 * version 3 of the License, or (at your option) any later version.
10 *
11 * ndncert is distributed in the hope that it will be useful, but WITHOUT ANY
12 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13 * PARTICULAR PURPOSE. See the GNU General Public License for more details.
14 *
15 * You should have received copies of the GNU General Public License along with
16 * ndncert, e.g., in COPYING.md file. If not, see <http://www.gnu.org/licenses/>.
17 *
18 * See AUTHORS.md for complete list of ndncert authors and contributors.
19 */
20
tylerliu4889a782020-09-30 22:47:49 -070021#ifndef NDNCERT_PROTOCOL_DETAIL_NEW_RENEW_REVOKE_HPP
22#define NDNCERT_PROTOCOL_DETAIL_NEW_RENEW_REVOKE_HPP
tylerliu182bc532020-09-25 01:54:45 -070023
tylerliu8704d032020-06-23 10:18:15 -070024#include "../ca-state.hpp"
tylerliu182bc532020-09-25 01:54:45 -070025
26namespace ndn {
27namespace ndncert {
28
tylerliu4889a782020-09-30 22:47:49 -070029class NEW_RENEW_REVOKE {
tylerliu182bc532020-09-25 01:54:45 -070030public:
31 static Block
tylerliu4889a782020-09-30 22:47:49 -070032 encodeApplicationParameters(RequestType requestType, const std::string& ecdhPub, const security::v2::Certificate& certRequest);
tylerliu182bc532020-09-25 01:54:45 -070033
tylerliu0790bdb2020-10-02 00:50:51 -070034 static void
35 decodeApplicationParameters(const Block& block, RequestType requestType, std::string& ecdhPub, shared_ptr<security::v2::Certificate>& certRequest);
36
tylerliu182bc532020-09-25 01:54:45 -070037 static Block
38 encodeDataContent(const std::string& ecdhKey, const std::string& salt,
tylerliu8704d032020-06-23 10:18:15 -070039 const CaState& request,
tylerliu182bc532020-09-25 01:54:45 -070040 const std::list<std::string>& challenges);
tylerliu0790bdb2020-10-02 00:50:51 -070041 struct DecodedData {
42 std::string ecdhKey;
Zhiyi Zhang91f86ab2020-10-05 15:36:35 -070043 uint64_t salt;
tylerliu0790bdb2020-10-02 00:50:51 -070044 std::string requestId;
45 Status requestStatus;
46 std::list<std::string> challenges;
47 };
48 static DecodedData
49 decodeDataContent(const Block& content);
tylerliu182bc532020-09-25 01:54:45 -070050};
51
52} // namespace ndncert
53} // namespace ndn
54
tylerliu4889a782020-09-30 22:47:49 -070055#endif // NDNCERT_PROTOCOL_DETAIL_NEW_RENEW_REVOKE_HPP