#ifndef _DER_KEYS_H_
#define _DER_KEYS_H_
#ifdef __cplusplus
extern "C" {
#endif
#include <libDER/libDER.h>
#include <libDER/DER_Decode.h>
typedef struct {
DERItem oid;
DERItem params;
} DERAlgorithmId;
extern const DERItemSpec DERAlgorithmIdItemSpecs[];
extern const DERSize DERNumAlgorithmIdItemSpecs;
typedef struct {
DERItem algId;
DERItem pubKey;
} DERSubjPubKeyInfo;
extern const DERItemSpec DERSubjPubKeyInfoItemSpecs[];
extern const DERSize DERNumSubjPubKeyInfoItemSpecs;
typedef struct {
DERItem modulus;
DERItem pubExponent;
} DERRSAPubKeyPKCS1;
extern const DERItemSpec DERRSAPubKeyPKCS1ItemSpecs[];
extern const DERSize DERNumRSAPubKeyPKCS1ItemSpecs;
typedef struct {
DERItem modulus;
DERItem reciprocal;
DERItem pubExponent;
} DERRSAPubKeyApple;
extern const DERItemSpec DERRSAPubKeyAppleItemSpecs[];
extern const DERSize DERNumRSAPubKeyAppleItemSpecs;
typedef struct {
DERItem p;
DERItem q;
DERItem dp;
DERItem dq;
DERItem qInv;
} DERRSAPrivKeyCRT;
extern const DERItemSpec DERRSAPrivKeyCRTItemSpecs[];
extern const DERSize DERNumRSAPrivKeyCRTItemSpecs;
typedef struct {
DERItem version;
DERItem n;
DERItem e;
DERItem d;
DERItem p;
DERItem q;
DERItem dp;
DERItem dq;
DERItem qInv;
} DERRSAKeyPair;
extern const DERItemSpec DERRSAKeyPairItemSpecs[];
extern const DERSize DERNumRSAKeyPairItemSpecs;
#ifdef __cplusplus
}
#endif
#endif