发个php手册,相当不错了,嘿嘿
http://cn2.php.net/get/php_manual_chm_12.zip/from/this/mirro...
作者 zgz931142 发布于 0000-00-00 分类:php基础编程
下面是Vsign.c文件,放在Apache服务器CGI-BIN目录中,请各位帮帮忙,怎样用PHP调用它。
Vsign.c文件如下:
/*
** vsign.c
**
** Sample for testing library veriicbc.
*/
#include
main( int argc, char *argv[] ) {
int inLen;
unsigned char inData[102400];
int signatureLen;
unsigned char signature[256+1];
int certificateLen;
char certificateFile[100];
/* certificateData must large enough to save all the certificate content */
FILE *infp, *certfp, *sigfp;
if( argc != 3 ) {
printf( "Usage: vsign source-file signature-file
" );
printf( "This program does not modify any file.
" );
exit( 1 );
}
/* Open the certificate file
if( (certfp=fopen(argv[1],"rb")) == NULL ) {
printf( "Open %s failed
", argv[1] );
exit( 1 );
}
Read certificate content
if( (certificateLen=fread( certificateData, 1, sizeof(certificateData), certfp )) < 0 ) {
printf( "Read %s failed
", argv[1] );
exit( 1 );
}
fclose( certfp );
*/
/* Open the file from which the signature generated */
if( (infp=fopen(argv[1],"rb")) == NULL ) {
printf( "Open %s failed
", argv[2] );
exit( 1 );
}
/* Read the content */
if( (inLen=fread( inData, 1, sizeof(inData), infp )) < 0 ) {
printf( "Read %s failed
", argv[2] );
exit( 1 );
}
fclose( infp );
/* Open the signature */
if( (sigfp=fopen(argv[2],"rb")) == NULL ) {
printf( "Open %s failed
", argv[3] );
exit( 1 );
}
if( (signatureLen=fread( signature, 1, 256, sigfp )) != 256 ) {
printf( "Read %s failed
", argv[3] );
exit( 1 );
}
/* Verify the signature */
memset(certificateFile,0x00,100);
sprintf(certificateFile,"%s","/usr/cz/infosec/unixlib/test/sproxy.crt");
printf("signature is%s
",signature);
if( VerifySignature(
inData,
inLen,
signature,
signatureLen,
certificateFile) != 1 ) {
printf( "Verify signature failed
" );
exit( 1 );
}
printf( "OK
" );
return 0;
}
逛论坛交流:救命啊php怎样调用Vsign.c
0 条回复
回复