// Common, group Crypto
// Copyright Alexander Liss
// own certificates storage,
// type and a public key are used as an index
#ifndef __CERTSTORE_H__
#define __CERTSTORE_H__
#include "commbuf.h"
class CertificateStorage
{
CertificateStorage(const CertificateStorage&);
CertificateStorage& operator=(const CertificateStorage&);
public:
virtual ~CertificateStorage(){}
virtual int put(const CommBuffer& cert,ReadControl& c, const CommBuffer& pub_key,ReadControl& c1, int type)=0;
virtual int get(int& type,CommBuffer& cert,const CommBuffer& pub_key)=0;
virtual int drop(const CommBuffer& pub_key)=0;
virtual int put_own(int& index,const CommBuffer& s,ReadControl& c, const CommBuffer& pub_key,ReadControl& c1,int type)=0;
virtual int get_own(int& type, CommBuffer& pub_key, CommBuffer& cert, int index)=0;
virtual int drop_own(int index)=0;
virtual int number_own()=0;
static CertificateStorage* new_object(int type);
};
#endif