char * PKI_X509_CERT_get_parsed(const PKI_X509_CERT *x, PKI_X509_DATA type ) { char *ret = NULL; PKI_X509_KEYPAIR *k = NULL; const PKI_X509_KEYPAIR_VALUE *pkey = NULL; if( !x ) return (NULL); switch( type ) { case PKI_X509_DATA_SERIAL: ret = PKI_INTEGER_get_parsed((PKI_INTEGER *) PKI_X509_CERT_get_data(x, type)); break; case PKI_X509_DATA_SUBJECT: case PKI_X509_DATA_ISSUER: ret = PKI_X509_NAME_get_parsed((PKI_X509_NAME *) PKI_X509_CERT_get_data(x, type)); break; case PKI_X509_DATA_NOTBEFORE: case PKI_X509_DATA_NOTAFTER: ret = PKI_TIME_get_parsed((PKI_TIME *)PKI_X509_CERT_get_data(x, type)); break; case PKI_X509_DATA_ALGORITHM: ret = (char *) PKI_ALGOR_get_parsed((PKI_ALGOR *) PKI_X509_CERT_get_data(x,type)); break; case PKI_X509_DATA_PUBKEY: case PKI_X509_DATA_KEYPAIR_VALUE: if ((pkey = PKI_X509_CERT_get_data(x, type)) != NULL) { k = PKI_X509_new_dup_value(PKI_DATATYPE_X509_KEYPAIR, pkey, NULL); ret = PKI_X509_KEYPAIR_get_parsed( k ); PKI_X509_KEYPAIR_free(k); } break; case PKI_X509_DATA_KEYSIZE: PKI_ERROR(PKI_ERR_PARAM_TYPE, "Deprecated Cert Datatype"); break; case PKI_X509_DATA_CERT_TYPE: case PKI_X509_DATA_SIGNATURE: case PKI_X509_DATA_EXTENSIONS: default: /* Not Recognized/Supported DATATYPE */ return (NULL); } return (ret); }
static void _pki_stderr_add( int level, const char *fmt, va_list ap ) { PKI_TIME *now = NULL; now = PKI_TIME_new(0); /* Let's print the log entry */ fprintf ( stderr, "%s [%d] %s: ", PKI_TIME_get_parsed( (PKI_TIME *) now ), getpid(), _get_info_string( level )); vfprintf( stderr, fmt, ap ); fprintf ( stderr, "\n" ); PKI_TIME_free( now ); return; }
char * PKI_X509_CRL_get_parsed(const PKI_X509_CRL *x, PKI_X509_DATA type ) { char *ret = NULL; const PKI_ALGOR *al = NULL; if (!x || !x->value) return NULL; switch (type) { case PKI_X509_DATA_VERSION: ret = PKI_INTEGER_get_parsed( PKI_X509_CRL_get_data(x, type)); if (!ret) ret = strdup("NONE"); break; case PKI_X509_DATA_ISSUER: ret = PKI_X509_NAME_get_parsed( PKI_X509_CRL_get_data(x, type)); if (!ret) ret = strdup("NONE"); break; case PKI_X509_DATA_ALGORITHM: if ((al = PKI_X509_CRL_get_data(x, type)) != NULL) ret = strdup(PKI_OID_get_descr(al->algorithm)); else ret = strdup("NONE"); break; case PKI_X509_DATA_LASTUPDATE: case PKI_X509_DATA_NEXTUPDATE: case PKI_X509_DATA_NOTBEFORE: case PKI_X509_DATA_NOTAFTER: ret = PKI_TIME_get_parsed( PKI_X509_CRL_get_data(x, type)); if (!ret) ret = strdup("NONE"); break; default: /* Not Recognized/Supported DATATYPE */ return NULL; } return ret; }
char * PKI_X509_OCSP_RESP_get_parsed ( PKI_X509_OCSP_RESP *r, PKI_X509_DATA type ) { char *ret = NULL; if( !r ) return ( NULL ); switch ( type ) { case PKI_X509_DATA_NONCE: ret = (char *) PKI_STRING_get_parsed((PKI_STRING *) PKI_X509_OCSP_RESP_get_data ( r, type )); break; case PKI_X509_DATA_NOTBEFORE: ret = (char *) PKI_TIME_get_parsed((PKI_TIME *) PKI_X509_OCSP_RESP_get_data ( r, type )); break; case PKI_X509_DATA_NOTAFTER: ret = NULL; break; case PKI_X509_DATA_ALGORITHM: ret = (char *) PKI_ALGOR_get_parsed ( (PKI_ALGOR *) PKI_X509_OCSP_RESP_get_data ( r, type )); break; case PKI_X509_DATA_SIGNATURE: ret = (char *) PKI_X509_SIGNATURE_get_parsed( (PKI_X509_SIGNATURE *) PKI_X509_OCSP_RESP_get_data ( r, type )); break; default: ret = NULL; } return ret; }
static void _pki_file_add( int level, const char *fmt, va_list ap ) { int fd = 0; FILE *file = NULL; PKI_TIME *now = NULL; if( ! _log_st.resource ) return; if(( fd = open( _log_st.resource, O_RDWR|O_APPEND|O_CREAT, S_IRUSR | S_IWUSR )) == -1 ) { /* Error! */ return; } if(( file = fdopen( fd, "a+")) == NULL ) { /* Error!!! */ fprintf( stderr, "DEBUG::ERROR, can not open log file!\n"); return; } now = PKI_TIME_new(0); /* Let's print the log entry */ fprintf ( file, "%s [%d]: %s: ", PKI_TIME_get_parsed( (PKI_TIME *) now ), getpid(), _get_info_string( level )); vfprintf( file, fmt, ap ); fprintf ( file, "\n"); PKI_TIME_free( now ); /* Now close the file stream */ fclose( file ); /* Do we need to also close the fd ? */ close ( fd ); return; }