Guardtime KSI c SDK
publicationsfile.h
Go to the documentation of this file.
1 /*
2  * Copyright 2013-2015 Guardtime, Inc.
3  *
4  * This file is part of the Guardtime client SDK.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License").
7  * You may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  * http://www.apache.org/licenses/LICENSE-2.0
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES, CONDITIONS, OR OTHER LICENSES OF ANY KIND, either
13  * express or implied. See the License for the specific language governing
14  * permissions and limitations under the License.
15  * "Guardtime" and "KSI" are trademarks or registered trademarks of
16  * Guardtime, Inc., and no license to trademarks is granted; Guardtime
17  * reserves and retains all trademark rights.
18  */
19 
20 #include "types.h"
21 
22 #ifndef KSI_PUBLICATIONSFILE_H_
23 #define KSI_PUBLICATIONSFILE_H_
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
45  typedef struct KSI_PublicationsFile_st KSI_PublicationsFile;
46 
56  int KSI_PublicationsFile_parse(KSI_CTX *ctx, const void *raw, size_t raw_len, KSI_PublicationsFile **pubFile);
57 
71  int KSI_PublicationsFile_fromFile(KSI_CTX *ctx, const char *fileName, KSI_PublicationsFile **pubFile);
72 
81  int KSI_PublicationsFile_serialize(KSI_CTX *ctx, KSI_PublicationsFile *pubFile, char **raw, size_t *raw_len);
82 
91 
102 
113 
124 
135 
147  int KSI_PublicationsFile_getSignedDataLength(const KSI_PublicationsFile *pubFile, size_t *signedDataLength);
148 
159 
171 
184 
197 
209 
223 
233 
243 
253 
263 
272 
278 
280 
282 
306 
316  int KSI_PublicationData_fromBase32(KSI_CTX *ctx, const char *publication, KSI_PublicationData **published_data);
317 
326  int KSI_PublicationData_toBase32(const KSI_PublicationData *published_data, char **publication);
327 
339  char *KSI_PublicationData_toString(const KSI_PublicationData *t, char *buffer, size_t buffer_len);
341  int KSI_PublicationData_toTlv (KSI_CTX *ctx, const KSI_PublicationData *data, unsigned tag, int isNonCritical, int isForward, KSI_TLV **tlv);
343 
355  char *KSI_PublicationRecord_toString(const KSI_PublicationRecord *t, char *buffer, size_t buffer_len);
363 #ifdef __cplusplus
364 }
365 #endif
366 
367 #endif /* KSI_PUBLICATIONSFILE_H_ */
void KSI_PublicationsFile_free(KSI_PublicationsFile *pubFile)
int KSI_PublicationRecord_getPublicationRefList(const KSI_PublicationRecord *t, KSI_LIST(KSI_Utf8String)**publicationRef)
struct KSI_PKISignature_st KSI_PKISignature
Definition: types.h:98
int KSI_PublicationsFile_getCertConstraints(const KSI_PublicationsFile *pubFile, KSI_CertConstraint **certConstraints)
int KSI_PublicationRecord_setPublicationRefList(KSI_PublicationRecord *t, KSI_LIST(KSI_Utf8String)*publicationRef)
struct KSI_CertificateRecord_st KSI_CertificateRecord
Definition: types.h:58
struct KSI_Integer_st KSI_Integer
Definition: types_base.h:140
int KSI_PublicationsFile_parse(KSI_CTX *ctx, const void *raw, size_t raw_len, KSI_PublicationsFile **pubFile)
int KSI_PublicationRecord_setPublishedData(KSI_PublicationRecord *t, KSI_PublicationData *publishedData)
struct KSI_PublicationsFile_st KSI_PublicationsFile
Definition: publicationsfile.h:45
int KSI_PublicationsFile_getPublicationDataByPublicationString(const KSI_PublicationsFile *pubFile, const char *pubString, KSI_PublicationRecord **pubRec)
struct KSI_PublicationData_st KSI_PublicationData
Definition: types.h:59
int KSI_PublicationsFile_serialize(KSI_CTX *ctx, KSI_PublicationsFile *pubFile, char **raw, size_t *raw_len)
int KSI_PublicationsFile_getPKICertificateById(const KSI_PublicationsFile *pubFile, const KSI_OctetString *id, KSI_PKICertificate **cert)
void KSI_PublicationRecord_free(KSI_PublicationRecord *t)
int KSI_PublicationsFile_getPublicationDataByTime(const KSI_PublicationsFile *pubFile, const KSI_Integer *pubTime, KSI_PublicationRecord **pubRec)
int KSI_PublicationRecord_getPublishedData(const KSI_PublicationRecord *t, KSI_PublicationData **publishedData)
int KSI_PublicationRecord_new(KSI_CTX *ctx, KSI_PublicationRecord **t)
int KSI_PublicationsFile_setCertConstraints(KSI_PublicationsFile *pubFile, const KSI_CertConstraint *arr)
struct KSI_PublicationRecord_st KSI_PublicationRecord
Definition: types.h:60
#define KSI_DEFINE_REF(typ)
Definition: types_base.h:56
struct KSI_DataHash_st KSI_DataHash
Definition: hash.h:52
int KSI_PublicationData_setBaseTlv(KSI_PublicationData *o, KSI_TLV *baseTlv)
int KSI_PublicationsFile_getHeader(const KSI_PublicationsFile *pubFile, KSI_PublicationsHeader **header)
int KSI_PublicationsFile_getSignedDataLength(const KSI_PublicationsFile *pubFile, size_t *signedDataLength)
int KSI_PublicationData_setImprint(KSI_PublicationData *t, KSI_DataHash *imprint)
int KSI_PublicationData_toTlv(KSI_CTX *ctx, const KSI_PublicationData *data, unsigned tag, int isNonCritical, int isForward, KSI_TLV **tlv)
int KSI_PublicationData_fromBase32(KSI_CTX *ctx, const char *publication, KSI_PublicationData **published_data)
int KSI_PublicationsFile_fromFile(KSI_CTX *ctx, const char *fileName, KSI_PublicationsFile **pubFile)
int KSI_PublicationsFile_getLatestPublication(const KSI_PublicationsFile *pubFile, const KSI_Integer *pubTime, KSI_PublicationRecord **pubRec)
int KSI_PublicationRecord_setRepositoryUriList(KSI_PublicationRecord *t, KSI_LIST(KSI_Utf8String)*repUriList)
int KSI_PublicationData_getImprint(const KSI_PublicationData *t, KSI_DataHash **imprint)
int KSI_PublicationsFile_setHeader(KSI_PublicationsFile *pubFile, KSI_PublicationsHeader *header)
int KSI_PublicationsFile_findPublication(const KSI_PublicationsFile *trust, const KSI_PublicationRecord *inRec, KSI_PublicationRecord **outRec)
int KSI_PublicationsFile_getPublications(const KSI_PublicationsFile *pubFile, KSI_LIST(KSI_PublicationRecord)**publications)
struct KSI_OctetString_st KSI_OctetString
Definition: types_base.h:145
int KSI_PublicationsFile_verify(const KSI_PublicationsFile *pubFile, KSI_CTX *ctx)
int KSI_PublicationData_fromTlv(KSI_TLV *tlv, KSI_PublicationData **data)
Definition: types.h:150
int KSI_PublicationRecord_getRepositoryUriList(const KSI_PublicationRecord *t, KSI_LIST(KSI_Utf8String)**repUriList)
int KSI_PublicationRecord_clone(const KSI_PublicationRecord *rec, KSI_PublicationRecord **clone)
int KSI_PublicationData_toBase32(const KSI_PublicationData *published_data, char **publication)
#define KSI_DEFINE_WRITE_BYTES(typ)
Definition: types_base.h:89
int KSI_PublicationData_getTime(const KSI_PublicationData *t, KSI_Integer **time)
struct KSI_PublicationsHeader_st KSI_PublicationsHeader
Definition: types.h:57
int KSI_PublicationsFile_setPublications(KSI_PublicationsFile *pubFile, KSI_LIST(KSI_PublicationRecord)*publications)
int KSI_PublicationsFile_setSignature(KSI_PublicationsFile *pubFile, KSI_PKISignature *signature)
int KSI_PublicationsFile_setCertificates(KSI_PublicationsFile *pubFile, KSI_LIST(KSI_CertificateRecord)*certificates)
char * KSI_PublicationRecord_toString(const KSI_PublicationRecord *t, char *buffer, size_t buffer_len)
struct KSI_CTX_st KSI_CTX
Definition: types_base.h:124
struct KSI_PKICertificate_st KSI_PKICertificate
Definition: types.h:93
struct KSI_TLV_st KSI_TLV
Definition: types_base.h:129
int KSI_PublicationsFile_new(KSI_CTX *ctx, KSI_PublicationsFile **pubFile)
struct KSI_Utf8String_st KSI_Utf8String
Definition: types_base.h:150
int KSI_PublicationData_new(KSI_CTX *ctx, KSI_PublicationData **t)
void KSI_PublicationData_free(KSI_PublicationData *t)
int KSI_PublicationData_getBaseTlv(const KSI_PublicationData *o, KSI_TLV **baseTlv)
int KSI_PublicationsFile_getNearestPublication(const KSI_PublicationsFile *pubFile, const KSI_Integer *pubTime, KSI_PublicationRecord **pubRec)
#define KSI_LIST(type)
Definition: list.h:44
int KSI_PublicationsFile_getCertificates(const KSI_PublicationsFile *pubFile, KSI_LIST(KSI_CertificateRecord)**certificates)
int KSI_PublicationData_setTime(KSI_PublicationData *t, KSI_Integer *time)
char * KSI_PublicationData_toString(const KSI_PublicationData *t, char *buffer, size_t buffer_len)
int KSI_PublicationsFile_findPublicationByTime(const KSI_PublicationsFile *trust, const KSI_Integer *time, KSI_PublicationRecord **outRec)
int KSI_PublicationsFile_getSignature(const KSI_PublicationsFile *pubFile, KSI_PKISignature **signature)