|
rpm
5.4.4
|
00001 #ifndef _H_RPMIOTYPES_ 00002 #define _H_RPMIOTYPES_ 00003 00011 typedef enum rpmRC_e { 00012 RPMRC_OK = 0, 00013 RPMRC_NOTFOUND = 1, 00014 RPMRC_FAIL = 2, 00015 RPMRC_NOTTRUSTED = 3, 00016 RPMRC_NOKEY = 4 00017 } rpmRC; 00018 00022 typedef /*@unsignedintegraltype@*/ unsigned char rpmuint8_t; 00023 typedef /*@unsignedintegraltype@*/ unsigned short rpmuint16_t; 00024 typedef /*@unsignedintegraltype@*/ unsigned int rpmuint32_t; 00025 typedef /*@unsignedintegraltype@*/ unsigned long long rpmuint64_t; 00026 00029 typedef /*@signedintegraltype@*/ int rpmint32_t; 00030 00033 typedef /*@refcounted@*/ struct rpmioItem_s * rpmioItem; 00034 struct rpmioItem_s { 00035 /*@null@*/ 00036 void *use; 00037 /*@kept@*/ /*@null@*/ 00038 void *pool; 00039 void *next; 00040 #if defined(__LCLINT__) 00041 /*@refs@*/ 00042 int nrefs; 00043 #endif 00044 }; 00045 00048 typedef struct rpmioPool_s * rpmioPool; 00049 00052 typedef /*@abstract@*/ /*@refcounted@*/ struct rpmiob_s * rpmiob; 00053 00056 /*@unchecked@*/ 00057 extern size_t _rpmiob_chunk; 00058 00061 typedef struct rpmioP_s { 00062 char * str; 00063 char * next; 00064 const char ** av; 00065 int ac; 00066 } * rpmioP; 00067 00070 typedef /*@abstract@*/ struct DIGEST_CTX_s * DIGEST_CTX; 00071 00074 typedef /*@abstract@*/ struct pgpPkt_s * pgpPkt; 00075 00078 typedef /*@abstract@*/ /*@refcounted@*/ struct pgpDig_s * pgpDig; 00079 00082 typedef /*@abstract@*/ struct pgpDigParams_s * pgpDigParams; 00083 00086 typedef rpmuint8_t pgpKeyID_t[8]; 00087 00090 typedef rpmuint8_t pgpTime_t[4]; 00091 00095 typedef enum pgpVSFlags_e { 00096 RPMVSF_DEFAULT = 0, 00097 RPMVSF_NOHDRCHK = (1 << 0), 00098 RPMVSF_NEEDPAYLOAD = (1 << 1), 00099 /* bit(s) 2-7 unused */ 00100 RPMVSF_NOSHA1HEADER = (1 << 8), 00101 RPMVSF_NOMD5HEADER = (1 << 9), /* unimplemented */ 00102 RPMVSF_NODSAHEADER = (1 << 10), 00103 RPMVSF_NORSAHEADER = (1 << 11), 00104 /* bit(s) 12-15 unused */ 00105 RPMVSF_NOSHA1 = (1 << 16), /* unimplemented */ 00106 RPMVSF_NOMD5 = (1 << 17), 00107 RPMVSF_NODSA = (1 << 18), 00108 RPMVSF_NORSA = (1 << 19) 00109 /* bit(s) 20-31 unused */ 00110 } pgpVSFlags; 00111 00112 #define _RPMVSF_NODIGESTS \ 00113 ( RPMVSF_NOSHA1HEADER | \ 00114 RPMVSF_NOMD5HEADER | \ 00115 RPMVSF_NOSHA1 | \ 00116 RPMVSF_NOMD5 ) 00117 00118 #define _RPMVSF_NOSIGNATURES \ 00119 ( RPMVSF_NODSAHEADER | \ 00120 RPMVSF_NORSAHEADER | \ 00121 RPMVSF_NODSA | \ 00122 RPMVSF_NORSA ) 00123 00124 #define _RPMVSF_NOHEADER \ 00125 ( RPMVSF_NOSHA1HEADER | \ 00126 RPMVSF_NOMD5HEADER | \ 00127 RPMVSF_NODSAHEADER | \ 00128 RPMVSF_NORSAHEADER ) 00129 00130 #define _RPMVSF_NOPAYLOAD \ 00131 ( RPMVSF_NOSHA1 | \ 00132 RPMVSF_NOMD5 | \ 00133 RPMVSF_NODSA | \ 00134 RPMVSF_NORSA ) 00135 00136 /*@-redef@*/ /* LCL: ??? */ 00137 typedef /*@abstract@*/ const void * fnpyKey; 00138 /*@=redef@*/ 00139 00143 typedef enum rpmCallbackType_e { 00144 RPMCALLBACK_UNKNOWN = 0, 00145 RPMCALLBACK_INST_PROGRESS = (1 << 0), 00146 RPMCALLBACK_INST_START = (1 << 1), 00147 RPMCALLBACK_INST_OPEN_FILE = (1 << 2), 00148 RPMCALLBACK_INST_CLOSE_FILE = (1 << 3), 00149 RPMCALLBACK_TRANS_PROGRESS = (1 << 4), 00150 RPMCALLBACK_TRANS_START = (1 << 5), 00151 RPMCALLBACK_TRANS_STOP = (1 << 6), 00152 RPMCALLBACK_UNINST_PROGRESS = (1 << 7), 00153 RPMCALLBACK_UNINST_START = (1 << 8), 00154 RPMCALLBACK_UNINST_STOP = (1 << 9), 00155 RPMCALLBACK_REPACKAGE_PROGRESS = (1 << 10), 00156 RPMCALLBACK_REPACKAGE_START = (1 << 11), 00157 RPMCALLBACK_REPACKAGE_STOP = (1 << 12), 00158 RPMCALLBACK_UNPACK_ERROR = (1 << 13), 00159 RPMCALLBACK_CPIO_ERROR = (1 << 14), 00160 RPMCALLBACK_SCRIPT_ERROR = (1 << 15) 00161 } rpmCallbackType; 00162 00165 typedef void * rpmCallbackData; 00166 00187 typedef enum pgpHashAlgo_e { 00188 PGPHASHALGO_ERROR = -1, 00189 PGPHASHALGO_NONE = 0, 00190 PGPHASHALGO_MD5 = 1, 00191 PGPHASHALGO_SHA1 = 2, 00192 PGPHASHALGO_RIPEMD160 = 3, 00193 PGPHASHALGO_MD2 = 5, 00194 PGPHASHALGO_TIGER192 = 6, 00195 PGPHASHALGO_HAVAL_5_160 = 7, 00196 PGPHASHALGO_SHA256 = 8, 00197 PGPHASHALGO_SHA384 = 9, 00198 PGPHASHALGO_SHA512 = 10, 00199 PGPHASHALGO_SHA224 = 11, 00201 PGPHASHALGO_MD4 = 104, 00202 PGPHASHALGO_RIPEMD128 = 105, 00203 PGPHASHALGO_CRC32 = 106, 00204 PGPHASHALGO_ADLER32 = 107, 00205 PGPHASHALGO_CRC64 = 108, 00206 PGPHASHALGO_JLU32 = 109, 00208 PGPHASHALGO_RIPEMD256 = 111, 00209 PGPHASHALGO_RIPEMD320 = 112, 00210 PGPHASHALGO_SALSA10 = 113, 00211 PGPHASHALGO_SALSA20 = 114, 00213 PGPHASHALGO_MD6_224 = 128+0, 00214 PGPHASHALGO_MD6_256 = 128+1, 00215 PGPHASHALGO_MD6_384 = 128+2, 00216 PGPHASHALGO_MD6_512 = 128+3, 00218 PGPHASHALGO_CUBEHASH_224 = 136+0, 00219 PGPHASHALGO_CUBEHASH_256 = 136+1, 00220 PGPHASHALGO_CUBEHASH_384 = 136+2, 00221 PGPHASHALGO_CUBEHASH_512 = 136+3, 00223 PGPHASHALGO_KECCAK_224 = 144+0, 00224 PGPHASHALGO_KECCAK_256 = 144+1, 00225 PGPHASHALGO_KECCAK_384 = 144+2, 00226 PGPHASHALGO_KECCAK_512 = 144+3, 00228 PGPHASHALGO_ECHO_224 = 148+0, 00229 PGPHASHALGO_ECHO_256 = 148+1, 00230 PGPHASHALGO_ECHO_384 = 148+2, 00231 PGPHASHALGO_ECHO_512 = 148+3, 00233 PGPHASHALGO_EDONR_224 = 152+0, 00234 PGPHASHALGO_EDONR_256 = 152+1, 00235 PGPHASHALGO_EDONR_384 = 152+2, 00236 PGPHASHALGO_EDONR_512 = 152+3, 00238 PGPHASHALGO_FUGUE_224 = 156+0, 00239 PGPHASHALGO_FUGUE_256 = 156+1, 00240 PGPHASHALGO_FUGUE_384 = 156+2, 00241 PGPHASHALGO_FUGUE_512 = 156+3, 00243 PGPHASHALGO_SKEIN_224 = 160+0, 00244 PGPHASHALGO_SKEIN_256 = 160+1, 00245 PGPHASHALGO_SKEIN_384 = 160+2, 00246 PGPHASHALGO_SKEIN_512 = 160+3, 00247 PGPHASHALGO_SKEIN_1024 = 160+4, 00249 PGPHASHALGO_BMW_224 = 168+0, 00250 PGPHASHALGO_BMW_256 = 168+1, 00251 PGPHASHALGO_BMW_384 = 168+2, 00252 PGPHASHALGO_BMW_512 = 168+3, 00254 PGPHASHALGO_SHABAL_224 = 176+0, 00255 PGPHASHALGO_SHABAL_256 = 176+1, 00256 PGPHASHALGO_SHABAL_384 = 176+2, 00257 PGPHASHALGO_SHABAL_512 = 176+3, 00259 PGPHASHALGO_SHAVITE3_224 = 180+0, 00260 PGPHASHALGO_SHAVITE3_256 = 180+1, 00261 PGPHASHALGO_SHAVITE3_384 = 180+2, 00262 PGPHASHALGO_SHAVITE3_512 = 180+3, 00264 PGPHASHALGO_BLAKE_224 = 184+0, 00265 PGPHASHALGO_BLAKE_256 = 184+1, 00266 PGPHASHALGO_BLAKE_384 = 184+2, 00267 PGPHASHALGO_BLAKE_512 = 184+3, 00269 PGPHASHALGO_TIB3_224 = 192+0, 00270 PGPHASHALGO_TIB3_256 = 192+1, 00271 PGPHASHALGO_TIB3_384 = 192+2, 00272 PGPHASHALGO_TIB3_512 = 192+3, 00274 PGPHASHALGO_SIMD_224 = 200+0, 00275 PGPHASHALGO_SIMD_256 = 200+1, 00276 PGPHASHALGO_SIMD_384 = 200+2, 00277 PGPHASHALGO_SIMD_512 = 200+3, 00279 PGPHASHALGO_ARIRANG_224 = 208+0, 00280 PGPHASHALGO_ARIRANG_256 = 208+1, 00281 PGPHASHALGO_ARIRANG_384 = 208+2, 00282 PGPHASHALGO_ARIRANG_512 = 208+3, 00284 PGPHASHALGO_LANE_224 = 212+0, 00285 PGPHASHALGO_LANE_256 = 212+1, 00286 PGPHASHALGO_LANE_384 = 212+2, 00287 PGPHASHALGO_LANE_512 = 212+3, 00289 PGPHASHALGO_LUFFA_224 = 216+0, 00290 PGPHASHALGO_LUFFA_256 = 216+1, 00291 PGPHASHALGO_LUFFA_384 = 216+2, 00292 PGPHASHALGO_LUFFA_512 = 216+3, 00294 PGPHASHALGO_CHI_224 = 224+0, 00295 PGPHASHALGO_CHI_256 = 224+1, 00296 PGPHASHALGO_CHI_384 = 224+2, 00297 PGPHASHALGO_CHI_512 = 224+3, 00299 PGPHASHALGO_JH_224 = 232+0, 00300 PGPHASHALGO_JH_256 = 232+1, 00301 PGPHASHALGO_JH_384 = 232+2, 00302 PGPHASHALGO_JH_512 = 232+3, 00304 PGPHASHALGO_GROESTL_224 = 240+0, 00305 PGPHASHALGO_GROESTL_256 = 240+1, 00306 PGPHASHALGO_GROESTL_384 = 240+2, 00307 PGPHASHALGO_GROESTL_512 = 240+3, 00309 PGPHASHALGO_HAMSI_224 = 248+0, 00310 PGPHASHALGO_HAMSI_256 = 248+1, 00311 PGPHASHALGO_HAMSI_384 = 248+2, 00312 PGPHASHALGO_HAMSI_512 = 248+3 00314 } pgpHashAlgo; 00315 00319 typedef enum rpmDigestFlags_e { 00320 RPMDIGEST_NONE = 0 00321 } rpmDigestFlags; 00322 00323 #if defined(_RPMIOB_INTERNAL) 00324 00326 struct rpmiob_s { 00327 struct rpmioItem_s _item; 00328 rpmuint8_t * b; 00329 size_t blen; 00330 size_t allocated; 00331 #if defined(__LCLINT__) 00332 /*@refs@*/ 00333 int nrefs; 00334 #endif 00335 }; 00336 #endif 00337 00338 #ifdef __cplusplus 00339 extern "C" { 00340 #endif 00341 00347 pgpHashAlgo rpmDigestAlgo(DIGEST_CTX ctx) 00348 /*@*/; 00349 00355 rpmDigestFlags rpmDigestF(DIGEST_CTX ctx) 00356 /*@*/; 00357 00363 /*@observer@*/ 00364 const char * rpmDigestName(DIGEST_CTX ctx) 00365 /*@*/; 00366 00373 /*@observer@*/ /*@null@*/ 00374 const char * rpmDigestASN1(DIGEST_CTX ctx) 00375 /*@*/; 00376 00382 /*@only@*/ 00383 DIGEST_CTX rpmDigestDup(DIGEST_CTX octx) 00384 /*@*/; 00385 00393 /*@only@*/ /*@null@*/ 00394 DIGEST_CTX rpmDigestInit(pgpHashAlgo hashalgo, rpmDigestFlags flags) 00395 /*@*/; 00396 00404 int rpmDigestUpdate(/*@null@*/ DIGEST_CTX ctx, const void * data, size_t len) 00405 /*@modifies ctx @*/; 00406 00416 int rpmDigestFinal(/*@only@*/ /*@null@*/ DIGEST_CTX ctx, 00417 /*@null@*/ /*@out@*/ void * datap, 00418 /*@null@*/ /*@out@*/ size_t * lenp, int asAscii) 00419 /*@modifies *datap, *lenp @*/; 00420 00429 int rpmHmacInit(DIGEST_CTX ctx, const void * key, size_t keylen) 00430 /*@*/; 00431 00434 typedef void * (*rpmCallbackFunction) 00435 (/*@null@*/ const void * h, 00436 const rpmCallbackType what, 00437 const rpmuint64_t amount, 00438 const rpmuint64_t total, 00439 /*@null@*/ fnpyKey key, 00440 /*@null@*/ rpmCallbackData data) 00441 /*@globals internalState@*/ 00442 /*@modifies internalState@*/; 00443 00444 #if !defined(SWIG) 00445 00450 #if defined(WITH_DMALLOC) 00451 #define _free(p) ((p) != NULL ? free((void *)(p)) : (void)0, NULL) 00452 #else 00453 /*@unused@*/ static inline /*@null@*/ 00454 void * _free(/*@only@*/ /*@null@*/ /*@out@*/ const void * p) 00455 /*@modifies p @*/ 00456 { 00457 if (p != NULL) free((void *)p); 00458 return NULL; 00459 } 00460 #endif 00461 #endif 00462 00463 /*@unused@*/ static inline int xislower(int c) /*@*/ { 00464 return (c >= (int)'a' && c <= (int)'z'); 00465 } 00466 /*@unused@*/ static inline int xisupper(int c) /*@*/ { 00467 return (c >= (int)'A' && c <= (int)'Z'); 00468 } 00469 /*@unused@*/ static inline int xisalpha(int c) /*@*/ { 00470 return (xislower(c) || xisupper(c)); 00471 } 00472 /*@unused@*/ static inline int xisdigit(int c) /*@*/ { 00473 return (c >= (int)'0' && c <= (int)'9'); 00474 } 00475 /*@unused@*/ static inline int xisalnum(int c) /*@*/ { 00476 return (xisalpha(c) || xisdigit(c)); 00477 } 00478 /*@unused@*/ static inline int xisblank(int c) /*@*/ { 00479 return (c == (int)' ' || c == (int)'\t'); 00480 } 00481 /*@unused@*/ static inline int xisspace(int c) /*@*/ { 00482 return (xisblank(c) || c == (int)'\n' || c == (int)'\r' || c == (int)'\f' || c == (int)'\v'); 00483 } 00484 /*@unused@*/ static inline int xiscntrl(int c) /*@*/ { 00485 return (c < (int)' '); 00486 } 00487 /*@unused@*/ static inline int xisascii(int c) /*@*/ { 00488 return ((c & 0x80) != 0x80); 00489 } 00490 /*@unused@*/ static inline int xisprint(int c) /*@*/ { 00491 return (c >= (int)' ' && xisascii(c)); 00492 } 00493 /*@unused@*/ static inline int xisgraph(int c) /*@*/ { 00494 return (c > (int)' ' && xisascii(c)); 00495 } 00496 /*@unused@*/ static inline int xispunct(int c) /*@*/ { 00497 return (xisgraph(c) && !xisalnum(c)); 00498 } 00499 00500 /*@unused@*/ static inline int xtolower(int c) /*@*/ { 00501 return ((xisupper(c)) ? (c | ('a' - 'A')) : c); 00502 } 00503 /*@unused@*/ static inline int xtoupper(int c) /*@*/ { 00504 return ((xislower(c)) ? (c & ~('a' - 'A')) : c); 00505 } 00506 00510 int xstrcasecmp(const char * s1, const char * s2) /*@*/; 00511 00515 int xstrncasecmp(const char *s1, const char * s2, size_t n) /*@*/; 00516 00520 /*@only@*/ /*@null@*/ 00521 const char * xstrtolocale(/*@only@*/ const char *str) 00522 /*@modifies *str @*/; 00523 00529 /*@unused@*/ /*@null@*/ 00530 rpmiob rpmiobUnlink (/*@killref@*/ /*@null@*/ rpmiob iob) 00531 /*@globals fileSystem @*/ 00532 /*@modifies iob, fileSystem @*/; 00533 #define rpmiobUnlink(_iob) \ 00534 ((rpmiob)rpmioUnlinkPoolItem((rpmioItem)(_iob), __FUNCTION__, __FILE__, __LINE__)) 00535 00541 /*@unused@*/ /*@newref@*/ /*@null@*/ 00542 rpmiob rpmiobLink (/*@null@*/ rpmiob iob) 00543 /*@globals fileSystem @*/ 00544 /*@modifies iob, fileSystem @*/; 00545 #define rpmiobLink(_iob) \ 00546 ((rpmiob)rpmioLinkPoolItem((rpmioItem)(_iob), __FUNCTION__, __FILE__, __LINE__)) 00547 00553 /*@null@*/ 00554 rpmiob rpmiobFree( /*@killref@*/ rpmiob iob) 00555 /*@globals fileSystem @*/ 00556 /*@modifies iob, fileSystem @*/; 00557 #define rpmiobFree(_iob) \ 00558 ((rpmiob)rpmioFreePoolItem((rpmioItem)(_iob), __FUNCTION__, __FILE__, __LINE__)) 00559 00565 /*@newref@*/ /*@null@*/ 00566 rpmiob rpmiobNew(size_t len) 00567 /*@globals fileSystem @*/ 00568 /*@modifies fileSystem @*/; 00569 00575 rpmiob rpmiobEmpty(/*@returned@*/ rpmiob iob) 00576 /*@modifies iob @*/; 00577 00583 rpmiob rpmiobRTrim(/*@returned@*/ rpmiob iob) 00584 /*@modifies iob @*/; 00585 00593 rpmiob rpmiobAppend(/*@returned@*/ rpmiob iob, const char * s, size_t nl) 00594 /*@modifies iob @*/; 00595 00601 rpmuint8_t * rpmiobBuf(rpmiob iob) 00602 /*@*/; 00603 00609 char * rpmiobStr(rpmiob iob) 00610 /*@*/; 00611 00617 size_t rpmiobLen(rpmiob iob) 00618 /*@*/; 00619 00620 #if defined(_RPMIOB_INTERNAL) 00621 00627 int rpmiobSlurp(const char * fn, rpmiob * iobp) 00628 /*@globals h_errno, fileSystem, internalState @*/ 00629 /*@modifies *iobp, fileSystem, internalState @*/; 00630 #endif 00631 00637 /*@null@*/ 00638 rpmioP rpmioPFree(/*@only@*/ /*@null@*/ rpmioP P) 00639 /*@modifies P @*/; 00640 00647 rpmRC rpmioParse(rpmioP *Pptr, const char * str) 00648 /*@modifies *Pptr @*/; 00649 00650 #ifdef __cplusplus 00651 } 00652 #endif 00653 00654 #endif /* _H_RPMIOTYPES_ */
1.7.5.1