freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

openssl之pemword版-資料下載頁

2025-08-17 04:56本頁面
  

【正文】 操作,如果公鑰類型不是RSA,就出錯返回失敗信息。(三)本文繼續(xù)介紹PEM對象的讀寫IO函數(shù),請參看第7部分和第8部分以便更好理解本文。 DSA私鑰對象DSAPrivateKey的IO函數(shù)DSA *PEM_read_bio_DSAPrivateKey(BIO *bp, DSA **x,pem_password_cb *cb, void *u)。DSA *PEM_read_DSAPrivateKey(FILE *fp, DSA **x,pem_password_cb *cb, void *u)。int PEM_write_bio_DSAPrivateKey(BIO *bp, DSA *x, const EVP_CIPHER *enc,unsigned char *kstr, int klen,pem_password_cb *cb, void *u)。int PEM_write_DSAPrivateKey(FILE *fp, DSA *x, const EVP_CIPHER *enc,unsigned char *kstr, int klen,pem_password_cb *cb, void *u)。這些函數(shù)對以DSA結(jié)構(gòu)存儲的DSA私鑰進(jìn)行PEM格式的IO讀寫。它們使用的處理格式跟PrivateKey系列函數(shù)是相同的,但是如果私鑰不是DSA類型的,則出錯返回。 DSA公鑰對象DSA_PUBKEY的IO函數(shù)DSA *PEM_read_bio_DSA_PUBKEY(BIO *bp, DSA **x,pem_password_cb *cb, void *u)。DSA *PEM_read_DSA_PUBKEY(FILE *fp, DSA **x,pem_password_cb *cb, void *u)。int PEM_write_bio_DSA_PUBKEY(BIO *bp, DSA *x)。int PEM_write_DSA_PUBKEY(FILE *fp, DSA *x)。這些函數(shù)對以DSA結(jié)構(gòu)存儲的DSA公鑰進(jìn)行PEM格式的IO讀寫。該公鑰是以SubjectPublicKeyInfo結(jié)構(gòu)進(jìn)行編碼的,如果公鑰不是DSA類型,則將會出錯返回。 DSA參數(shù)對象DSAParams的IO函數(shù)DSA *PEM_read_bio_DSAparams(BIO *bp, DSA **x, pem_password_cb *cb, void *u)。DSA *PEM_read_DSAparams(FILE *fp, DSA **x, pem_password_cb *cb, void *u)。int PEM_write_bio_DSAparams(BIO *bp, DSA *x)。int PEM_write_DSAparams(FILE *fp, DSA *x)。這些函數(shù)對以DSA結(jié)構(gòu)存儲的DSA參數(shù)進(jìn)行PEM格式的IO讀寫操作。 DH參數(shù)對象DHParams的IO函數(shù)DH *PEM_read_bio_DHparams(BIO *bp, DH **x, pem_password_cb *cb, void *u)。DH *PEM_read_DHparams(FILE *fp, DH **x, pem_password_cb *cb, void *u)。int PEM_write_bio_DHparams(BIO *bp, DH *x)。int PEM_write_DHparams(FILE *fp, DH *x)。這些函數(shù)對以DH結(jié)構(gòu)保存的DH參數(shù)進(jìn)行PEM格式的IO讀寫操作,這些參數(shù)采用了PKCS3的DH參數(shù)結(jié)構(gòu)進(jìn)行編碼。 X509證書對象X509的IO函數(shù)X509 *PEM_read_bio_X509(BIO *bp, X509 **x, pem_password_cb *cb, void *u)。X509 *PEM_read_X509(FILE *fp, X509 **x, pem_password_cb *cb, void *u)。int PEM_write_bio_X509(BIO *bp, X509 *x)。int PEM_write_X509(FILE *fp, X509 *x)。這些函數(shù)對以X509結(jié)構(gòu)保存的X509證書進(jìn)行PEM格式的IO讀寫操作,這些函數(shù)也可以對信任X509證書進(jìn)行相同的操作,但是信任設(shè)置信息會丟失。 X509信任證書對象X509_AUX的IO函數(shù)X509 *PEM_read_bio_X509_AUX(BIO *bp, X509 **x, pem_password_cb *cb, void *u)。X509 *PEM_read_X509_AUX(FILE *fp, X509 **x, pem_password_cb *cb, void *u)。int PEM_write_bio_X509_AUX(BIO *bp, X509 *x)。int PEM_write_X509_AUX(FILE *fp, X509 *x)。這些函數(shù)對以X509結(jié)構(gòu)保存的信任X509證書進(jìn)行PEM格式的IO讀寫操作。 X509證書請求對象X509_REQ的IO函數(shù)X509_REQ *PEM_read_bio_X509_REQ(BIO *bp, X509_REQ **x,pem_password_cb *cb, void *u)。X509_REQ *PEM_read_X509_REQ(FILE *fp, X509_REQ **x,pem_password_cb *cb, void *u)。int PEM_write_bio_X509_REQ(BIO *bp, X509_REQ *x)。int PEM_write_X509_REQ(FILE *fp, X509_REQ *x)。int PEM_write_bio_X509_REQ_NEW(BIO *bp, X509_REQ *x)。int PEM_write_X509_REQ_NEW(FILE *fp, X509_REQ *x)。這些函數(shù)對以X509_REQ結(jié)構(gòu)存儲的符合PKCS10標(biāo)準(zhǔn)的證書請求進(jìn)行PEM格式的IO讀寫操作。不同的是,X509_REQ系列寫函數(shù)使用CERTIFICATE REQUEST作為頭,而X509_REQ_NEW系列寫函數(shù)則采用NEW CERTIFICATE REQUEST作為頭(一些CA要求這種格式)。而X509_REQ讀函數(shù)對這兩種情況都能處理,所以沒有X509_REQ_NEW的讀函數(shù)了。 X509吊銷列表對象X509_CRL的IO函數(shù)X509_CRL *PEM_read_bio_X509_CRL(BIO *bp, X509_CRL **x,pem_password_cb *cb, void *u)。X509_CRL *PEM_read_X509_CRL(FILE *fp, X509_CRL **x,pem_password_cb *cb, void *u)。int PEM_write_bio_X509_CRL(BIO *bp, X509_CRL *x)。int PEM_write_X509_CRL(FILE *fp, X509_CRL *x)。這些函數(shù)對以X509_CRL結(jié)構(gòu)存儲的X509 CRL進(jìn)行PEM格式的IO讀寫操作。 PKCS7編碼內(nèi)容對象的PKCS7的IO函數(shù)PKCS7 *PEM_read_bio_PKCS7(BIO *bp, PKCS7 **x, pem_password_cb *cb, void *u)。PKCS7 *PEM_read_PKCS7(FILE *fp, PKCS7 **x, pem_password_cb *cb, void *u)。int PEM_write_bio_PKCS7(BIO *bp, PKCS7 *x)。int PEM_write_PKCS7(FILE *fp, PKCS7 *x)。這些漢森對以PKCS7結(jié)構(gòu)存儲的PKCS7內(nèi)容信息進(jìn)行PEM格式的IO讀寫操作。 Netscape證書序列對象NETSCAPE_CERT_SEQUENCE的IO函數(shù)NETSCAPE_CERT_SEQUENCE *PEM_read_bio_NETSCAPE_CERT_SEQUENCE(BIO *bp,NETSCAPE_CERT_SEQUENCE **x,pem_password_cb *cb, void *u)。NETSCAPE_CERT_SEQUENCE *PEM_read_NETSCAPE_CERT_SEQUENCE(FILE *fp,NETSCAPE_CERT_SEQUENCE **x,pem_password_cb *cb, void *u)。int PEM_write_bio_NETSCAPE_CERT_SEQUENCE(BIO *bp, NETSCAPE_CERT_SEQUENCE *x)。int PEM_write_NETSCAPE_CERT_SEQUENCE(FILE *fp, NETSCAPE_CERT_SEQUENCE *x)。這些函數(shù)對以NETSCAPE_CERT_SEQUENCE結(jié)構(gòu)存儲的Netscape證書序列進(jìn)行PEM格式的IO讀寫操作。在PEM讀寫的過程中,特別對于私鑰文件,可能經(jīng)常要使用到獲取口令的回調(diào)函數(shù),在簽名我們介紹的一些列函數(shù)也可以看出,基本上都是帶有回調(diào)函數(shù)的參數(shù)的。openssl缺省的回調(diào)函數(shù)是基于命令行的,在許多情況下可能并不適應(yīng),這就要求用戶自己定義回調(diào)函數(shù)。在前面的相關(guān)章節(jié),我們已經(jīng)介紹了該回調(diào)函數(shù)的格式,現(xiàn)在我們給出一個回調(diào)函數(shù)的實(shí)現(xiàn)例子。int pass_cb(char *buf, int size, int rwflag, void *u)。{int len。char *tmp。/* rwflag是一個標(biāo)準(zhǔn),如果為1,可能還需要作些別的處理工作*/printf(輸入口令: \%s\\n, u)。/* 這里應(yīng)該是得到口令的代碼*/tmp = hello。len = strlen(tmp)。if (len = 0) return 0。/* 如果口令超出給定長度,就把多余的刪掉 */if (len size) len = size。memcpy(buf, tmp, len)。return len。}PEM系列函數(shù)的格式和參數(shù)基本相同,下面是一個常犯的導(dǎo)致錯誤的用法。X509 *x。PEM_read_bio_X509(bp, amp。x, 0, NULL)。這樣的用法會導(dǎo)致出現(xiàn)不可預(yù)測的錯誤,因?yàn)閤并沒有進(jìn)行初始化,分配內(nèi)存空間,而接下來調(diào)用的函數(shù)卻會往x里面寫入數(shù)據(jù),導(dǎo)致內(nèi)存非法操作。這也是openssl本身沒有處理好的一個BUG.
點(diǎn)擊復(fù)制文檔內(nèi)容
職業(yè)教育相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1