Charles.Forsyth20060303a828770d19 years agoHistory
118 lines · 1.9 KB · C
RawDownload
typedef struct IPint IPint;typedef struct SigAlg SigAlg;typedef struct SigAlgVec SigAlgVec;typedef struct SK SK;typedef struct PK PK;typedef struct Certificate Certificate;typedef struct XDigestState XDigestState;typedef struct XAESstate XAESstate;typedef struct XDESstate XDESstate;typedef struct XIDEAstate XIDEAstate;typedef struct XRC4state XRC4state; enum{	Maxbuf=	4096,	MaxBigBytes = 1024}; /* infininite precision integer */struct IPint{	Keyring_IPint x;	BigInt	b;}; /* generic certificate */struct Certificate{	Keyring_Certificate x;	void		*signa;	/* actual signature */}; /* generic public key */struct PK{	Keyring_PK	x;	void		*key;	/* key and system parameters */}; /* digest state */struct XDigestState{	Keyring_DigestState	x;	DigestState	state;}; /* AES state */struct XAESstate{	Keyring_AESstate	x;	AESstate	state;}; /* DES state */struct XDESstate{	Keyring_DESstate	x;	DESstate	state;}; /* IDEA state */struct XIDEAstate{	Keyring_IDEAstate	x;	IDEAstate	state;}; /* RC4 state */struct XRC4state{	Keyring_RC4state	x;	RC4state	state;}; /* generic secret key */struct SK{	Keyring_SK	x;	void		*key;	/* key and system parameters */}; struct SigAlgVec {	char	*name; 	char**	skattr;	char**	pkattr;	char**	sigattr; 	void*	(*str2sk)(char*, char**);	void*	(*str2pk)(char*, char**);	void*	(*str2sig)(char*, char**); 	int	(*sk2str)(void*, char*, int);	int	(*pk2str)(void*, char*, int);	int	(*sig2str)(void*, char*, int); 	void*	(*sk2pk)(void*); 	void*	(*gensk)(int);	void*	(*genskfrompk)(void*);	void*	(*sign)(BigInt, void*);	int	(*verify)(BigInt, void*, void*); 	void	(*skfree)(void*);	void	(*pkfree)(void*);	void	(*sigfree)(void*);}; struct SigAlg{	Keyring_SigAlg	x;	SigAlgVec	*vec;}; int	bigtobase64(BigInt b, char *buf, int blen);BigInt	base64tobig(char *str, char **strp);SigAlgVec*	findsigalg(char*);Keyring_IPint*	newIPint(BigInt);