@@ -843,4 +843,126 @@ CONF *php_openssl_nconf_new(void)
843843 return NCONF_new_ex (PHP_OPENSSL_LIBCTX , NULL );
844844}
845845
846+ X509 * php_openssl_pem_read_asn1_bio_x509 (BIO * in )
847+ {
848+ X509 * x = X509_new_ex (PHP_OPENSSL_LIBCTX , PHP_OPENSSL_PROPQ );
849+
850+ if (x == NULL ) {
851+ return NULL ;
852+ }
853+
854+ if (PEM_ASN1_read_bio ((d2i_of_void * )d2i_X509 , PEM_STRING_X509 , in , (void * * ) & x , NULL , NULL ) == NULL ) {
855+ X509_free (x );
856+ return NULL ;
857+ }
858+
859+ return x ;
860+ }
861+
862+ X509 * php_openssl_pem_read_bio_x509 (BIO * in )
863+ {
864+ X509 * x = X509_new_ex (PHP_OPENSSL_LIBCTX , PHP_OPENSSL_PROPQ );
865+
866+ if (x == NULL ) {
867+ return NULL ;
868+ }
869+
870+ if (PEM_read_bio_X509 (in , & x , NULL , NULL ) == NULL ) {
871+ X509_free (x );
872+ return NULL ;
873+ }
874+
875+ return x ;
876+ }
877+
878+ X509_REQ * php_openssl_pem_read_bio_x509_req (BIO * in )
879+ {
880+ X509_REQ * xr = X509_REQ_new_ex (PHP_OPENSSL_LIBCTX , PHP_OPENSSL_PROPQ );
881+
882+ if (xr == NULL ) {
883+ return NULL ;
884+ }
885+
886+ if (PEM_read_bio_X509_REQ (in , & xr , NULL , NULL ) == NULL ) {
887+ X509_REQ_free (xr );
888+ return NULL ;
889+ }
890+
891+ return xr ;
892+ }
893+
894+ EVP_PKEY * php_openssl_pem_read_bio_public_key (BIO * in )
895+ {
896+ return PEM_read_bio_PUBKEY_ex (in , NULL , NULL , NULL , PHP_OPENSSL_LIBCTX , PHP_OPENSSL_PROPQ );
897+ }
898+
899+ EVP_PKEY * php_openssl_pem_read_bio_private_key (BIO * in , pem_password_cb * cb , void * u )
900+ {
901+ return PEM_read_bio_PrivateKey_ex (in , NULL , cb , u , PHP_OPENSSL_LIBCTX , PHP_OPENSSL_PROPQ );
902+ }
903+
904+ PKCS7 * php_openssl_pem_read_bio_pkcs7 (BIO * in )
905+ {
906+ PKCS7 * p = PKCS7_new_ex (PHP_OPENSSL_LIBCTX , PHP_OPENSSL_PROPQ );
907+
908+ if (p == NULL ) {
909+ return NULL ;
910+ }
911+
912+ if (PEM_read_bio_PKCS7 (in , & p , NULL , NULL ) == NULL ) {
913+ PKCS7_free (p );
914+ return NULL ;
915+ }
916+
917+ return p ;
918+ }
919+
920+ CMS_ContentInfo * php_openssl_pem_read_bio_cms (BIO * in )
921+ {
922+ CMS_ContentInfo * ci = CMS_ContentInfo_new_ex (PHP_OPENSSL_LIBCTX , PHP_OPENSSL_PROPQ );
923+
924+ if (ci == NULL ) {
925+ return NULL ;
926+ }
927+
928+ if (PEM_read_bio_CMS (in , & ci , NULL , NULL ) == NULL ) {
929+ CMS_ContentInfo_free (ci );
930+ return NULL ;
931+ }
932+
933+ return ci ;
934+ }
935+
936+ CMS_ContentInfo * php_openssl_d2i_bio_cms (BIO * in )
937+ {
938+ CMS_ContentInfo * ci = CMS_ContentInfo_new_ex (PHP_OPENSSL_LIBCTX , PHP_OPENSSL_PROPQ );
939+
940+ if (ci == NULL ) {
941+ return NULL ;
942+ }
943+
944+ if (d2i_CMS_bio (in , & ci ) == NULL ) {
945+ CMS_ContentInfo_free (ci );
946+ return NULL ;
947+ }
948+
949+ return ci ;
950+ }
951+
952+ CMS_ContentInfo * php_openssl_smime_read_cms (BIO * bio , BIO * * bcont )
953+ {
954+ CMS_ContentInfo * ci = CMS_ContentInfo_new_ex (PHP_OPENSSL_LIBCTX , PHP_OPENSSL_PROPQ );
955+
956+ if (ci == NULL ) {
957+ return NULL ;
958+ }
959+
960+ if (SMIME_read_CMS_ex (bio , 0 , bcont , & ci ) == NULL ) {
961+ CMS_ContentInfo_free (ci );
962+ return NULL ;
963+ }
964+
965+ return ci ;
966+ }
967+
846968#endif
0 commit comments