// Common, group Crypto
// Copyright Alexander Liss
#ifndef __CERTIFICATE_H__
#define __CERTIFICATE_H__
#include "array.h"
#include "datahook.h"
// CertificateUnit
// in SSL, wire encoded has 3 bytes data_size
typedef CommBuffer CertificateUnit;
// Certificate
// in SSL, wire encoded has 3 bytes data_size
class Certificate : public SimpleArray<CertificateUnit>,public DataHook
{
public:
int size_bytes,unit_size_bytes;
Certificate():size_bytes(3),unit_size_bytes(3){}
int pack(CommBuffer& d)const;
int unpack(const CommBuffer& s,ReadControl& c);
};
// OpenCertificateUnit
// no need for a special wire encoding
struct OpenCertificateUnit:public DataHook
{
CommBuffer data,pub_key;
int assured; // index
OpenCertificateUnit():assured(-1){}
int pack(CommBuffer& d)const;
int unpack(const CommBuffer& s,ReadControl& c);
};
// OpenCertificate
typedef SimpleArray<OpenCertificateUnit> OpenCertificate;
#endif