]> WPIA git - cassiopeia.git/blobdiff - src/io/recordHandler.cpp
add: Incremental CRL transfer
[cassiopeia.git] / src / io / recordHandler.cpp
index 93990b0c1d6f447d2696140c97f7f09bb7bc019b..72442ce110742ac5b8c6366efb6cf31cc636b654 100644 (file)
@@ -201,16 +201,11 @@ public:
 
             auto reqCA = CAs.at( ca );
             ( *log ) << "CA found" << std::endl;
-            std::shared_ptr<X509_CRL> crl = signer->revoke( reqCA, serial );
+            std::shared_ptr<CRL> crl;
+            std::string date;
+            std::tie<std::shared_ptr<CRL>, std::string>( crl, date ) = signer->revoke( reqCA, serial );
 
-            std::shared_ptr<BIO> mem( BIO_new( BIO_s_mem() ), BIO_free );
-
-            PEM_write_bio_X509_CRL( mem.get(), crl.get() );
-            BUF_MEM* bptr;
-            BIO_get_mem_ptr( mem.get(), &bptr );
-
-            std::string newCRL( bptr->data, bptr->length );
-            respondCommand( RecordHeader::SignerResult::REVOKED, newCRL );
+            respondCommand( RecordHeader::SignerResult::REVOKED, date + crl->getSignature() );
 
             if( !SSL_shutdown( ssl.get() ) && !SSL_shutdown( ssl.get() ) ) {
                 ( *log ) << "ERROR: SSL close failed" << std::endl;