00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef _KEYSTEWARD_H_
00018 #define _KEYSTEWARD_H_
00019
00020 #ifdef BSP_ENABLED
00021
00022 #include <oasys/util/ScratchBuffer.h>
00023
00024
00025 namespace dtn {
00026
00027 typedef oasys::ScratchBuffer<u_char*, 64> DataBuffer;
00028
00029 class Bundle;
00030
00031 class KeyParameterInfo;
00032
00033 class KeySteward {
00034
00035 public:
00036
00038
00039 static int encrypt(const Bundle* b,
00040 KeyParameterInfo* kpi,
00041 const LinkRef& link,
00042 std::string security_dest,
00043 u_char* data,
00044 size_t data_len,
00045 DataBuffer& db);
00046
00047 static int decrypt(const Bundle* b,
00048 std::string security_src,
00049 u_char* enc_data,
00050 size_t enc_data_len,
00051 DataBuffer& db);
00052
00053 static int sign(const Bundle* b,
00054 KeyParameterInfo*kpi,
00055 const LinkRef& link,
00056 u_char* data,
00057 size_t data_len,
00058 DataBuffer& db);
00059
00060 static int signature_length(const Bundle* b,
00061 KeyParameterInfo* kpi,
00062 const LinkRef& link,
00063 size_t data_len,
00064 size_t& out_len);
00065
00066 static int verify(const Bundle* b,
00067 u_char* enc_data,
00068 size_t enc_data_len,
00069 u_char* data,
00070 size_t data_len);
00071 };
00072
00073
00074 }
00075
00076 #endif
00077
00078 #endif