123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288 |
- #ifndef EPID_COMMON_FILE_PARSER_H_
- #define EPID_COMMON_FILE_PARSER_H_
- #include <stddef.h>
- #include "epid/common/errors.h"
- #include "epid/common/types.h"
- typedef enum EpidVersion {
- kEpid1x,
- kEpid2x,
- kNumEpidVersions,
- } EpidVersion;
- extern const OctStr16 kEpidVersionCode[kNumEpidVersions];
- typedef enum EpidFileType {
- kIssuingCaPubKeyFile,
- kGroupPubKeyFile,
- kPrivRlFile,
- kSigRlFile,
- kGroupRlFile,
- kPrivRlRequestFile,
- kSigRlRequestFile,
- kGroupRlRequestFile,
- kNumFileTypes,
- } EpidFileType;
- extern const OctStr16 kEpidFileTypeCode[kNumFileTypes];
- #pragma pack(1)
- typedef struct EpidFileHeader {
- OctStr16 epid_version;
- OctStr16 file_type;
- } EpidFileHeader;
- typedef struct EpidCaCertificate {
- EpidFileHeader header;
- OctStr512 pubkey;
- OctStr256 prime;
- OctStr256 a;
- OctStr256 b;
- OctStr256 x;
- OctStr256 y;
- OctStr256 r;
- EcdsaSignature signature;
- } EpidCaCertificate;
- #pragma pack()
- EpidStatus EpidParseFileHeader(void const* buf, size_t len,
- EpidVersion* epid_version,
- EpidFileType* file_type);
- EpidStatus EpidParseGroupPubKeyFile(void const* buf, size_t len,
- EpidCaCertificate const* cert,
- GroupPubKey* pubkey);
- EpidStatus EpidParsePrivRlFile(void const* buf, size_t len,
- EpidCaCertificate const* cert, PrivRl* rl,
- size_t* rl_len);
- EpidStatus EpidParseSigRlFile(void const* buf, size_t len,
- EpidCaCertificate const* cert, SigRl* rl,
- size_t* rl_len);
- EpidStatus EpidParseGroupRlFile(void const* buf, size_t len,
- EpidCaCertificate const* cert, GroupRl* rl,
- size_t* rl_len);
- #endif
|