The unified diff between revisions [12d9bc88..] and [61694173..] is displayed below. It can also be downloaded as a raw diff.

#
#
# patch "doc/examples/ca.cpp"
#  from [40ef88f4a8bcc9a4451144194837c248de9cbbc3]
#    to [1648cc1e145e0f11cad4929e15daf87ba7c6882f]
#
# patch "doc/examples/dh.cpp"
#  from [556d5be979b780dcf79fb21527fd24cfc9d3348b]
#    to [e23dd15f6a039ce719d8538aa227a34424fedac8]
#
# patch "doc/examples/dsa_kgen.cpp"
#  from [8c0609f20f18408f5ed6d5640c4063ca580e6bac]
#    to [76f45452b36bbee109877a6bdcf10c27935b3d22]
#
# patch "doc/examples/dsa_sign.cpp"
#  from [ef581f16fded1583144a1b645d87f1f831404a5e]
#    to [009ee6115f1c18934b7dfeaabd8810660261e70b]
#
# patch "doc/examples/dsa_ver.cpp"
#  from [0333fd7843422f29671c58ec3bead1fc4ea52986]
#    to [5f4635fc7f20915776b8c4f0c80056d829834df4]
#
# patch "doc/examples/encrypt.cpp"
#  from [eb9430dfd41f655a0ba92764172820c755b8b8da]
#    to [87ea2c212d8ac02aab9e329516faa1f104ac1fa0]
#
# patch "doc/examples/factor.cpp"
#  from [ccd7d9f57b4aa83b0f37e40f11da5a7ff40d43d0]
#    to [51fb64d85755667ddef183e2a0772c343634ea9a]
#
# patch "doc/examples/passhash.cpp"
#  from [a58d867fd42a56e390f2a26b2e65fce72b080b5a]
#    to [7d1729fd83005909291a5af91e50cf967c105e42]
#
# patch "doc/examples/pkcs10.cpp"
#  from [18e1bbf83d04e9a5a1eeed97f361d41eabf8088d]
#    to [2f55dc23fbfd39c431f05a4e01072f6a22a837f8]
#
# patch "doc/examples/rsa_dec.cpp"
#  from [3c7eee6577a3aff0ab79bdf78b2b37580cc91b5b]
#    to [548f30f9ba403b7a8ac655e893946ed381a9dfef]
#
# patch "doc/examples/rsa_enc.cpp"
#  from [2cffe82b22bee3a8ef7de06186195ee649ef9668]
#    to [f01e8f5ad36889d4f5d131452be49cff1a694da5]
#
# patch "doc/examples/rsa_kgen.cpp"
#  from [fdfbdc77fca641505d6a1aa854bd67fe34095418]
#    to [be1f2b4ce7898dc39581483342a70c6c19a6deb0]
#
# patch "doc/examples/self_sig.cpp"
#  from [7b9cca9a8f2445c586e59acfd079f94739dd9d1a]
#    to [d1c702ea771fc2f771878e4078a3daa8728ae96d]
#
============================================================
--- doc/examples/ca.cpp	40ef88f4a8bcc9a4451144194837c248de9cbbc3
+++ doc/examples/ca.cpp	1648cc1e145e0f11cad4929e15daf87ba7c6882f
@@ -38,7 +38,8 @@ int main(int argc, char* argv[])
       const std::string arg_ca_key = argv[3];
       const std::string arg_req_file = argv[4];

-      std::auto_ptr<RandomNumberGenerator> rng(make_rng());
+      std::auto_ptr<RandomNumberGenerator> rng(
+         RandomNumberGenerator::make_rng());

       X509_Certificate ca_cert(arg_ca_cert);

@@ -58,7 +59,8 @@ int main(int argc, char* argv[])
       X509_Time start_time(system_time());
       X509_Time end_time(system_time() + 365 * 60 * 60 * 24);

-      X509_Certificate new_cert = ca.sign_request(req, *rng, start_time, end_time);
+      X509_Certificate new_cert = ca.sign_request(req, *rng,
+                                                  start_time, end_time);

       // send the new cert back to the requestor
       std::cout << new_cert.PEM_encode();
============================================================
--- doc/examples/dh.cpp	556d5be979b780dcf79fb21527fd24cfc9d3348b
+++ doc/examples/dh.cpp	e23dd15f6a039ce719d8538aa227a34424fedac8
@@ -17,7 +17,8 @@ int main()
    {
    try
       {
-      std::auto_ptr<RandomNumberGenerator> rng(make_rng());
+      std::auto_ptr<RandomNumberGenerator> rng(
+         RandomNumberGenerator::make_rng());

       // Alice creates a DH key and sends (the public part) to Bob
       DH_PrivateKey private_a(*rng, DL_Group("modp/ietf/1024"));
============================================================
--- doc/examples/dsa_kgen.cpp	8c0609f20f18408f5ed6d5640c4063ca580e6bac
+++ doc/examples/dsa_kgen.cpp	76f45452b36bbee109877a6bdcf10c27935b3d22
@@ -44,7 +44,9 @@ int main(int argc, char* argv[])

    try
       {
-      std::auto_ptr<RandomNumberGenerator> rng(make_rng());
+      std::auto_ptr<RandomNumberGenerator> rng(
+         RandomNumberGenerator::make_rng());
+
       DSA_PrivateKey key(*rng, DL_Group("dsa/jce/1024"));

       pub << X509::PEM_encode(key);
============================================================
--- doc/examples/dsa_sign.cpp	ef581f16fded1583144a1b645d87f1f831404a5e
+++ doc/examples/dsa_sign.cpp	009ee6115f1c18934b7dfeaabd8810660261e70b
@@ -48,7 +48,8 @@ int main(int argc, char* argv[])
          return 1;
          }

-      std::auto_ptr<RandomNumberGenerator> rng(make_rng());
+      std::auto_ptr<RandomNumberGenerator> rng(
+         RandomNumberGenerator::make_rng());

       std::auto_ptr<PKCS8_PrivateKey> key(
          PKCS8::load_key(argv[1], *rng, passphrase)
@@ -62,13 +63,15 @@ int main(int argc, char* argv[])
          return 1;
          }

-      Pipe pipe(new PK_Signer_Filter(get_pk_signer(*dsakey, "EMSA1(SHA-1)")),
-                new Base64_Encoder);
+      PK_Signer signer(*dsakey, "EMSA1(SHA-1)");

-      pipe.start_msg();
-      message >> pipe;
-      pipe.end_msg();
+      DataSource_Stream in(message);
+      byte buf[4096] = { 0 };
+      while(u32bit got = in.read(buf, sizeof(buf)))
+         signer.update(buf, got);

+      Pipe pipe(new Base64_Encoder);
+      pipe.process_msg(signer.signature(*rng));
       sigfile << pipe.read_all_as_string() << std::endl;
    }
    catch(std::exception& e)
============================================================
--- doc/examples/dsa_ver.cpp	0333fd7843422f29671c58ec3bead1fc4ea52986
+++ doc/examples/dsa_ver.cpp	5f4635fc7f20915776b8c4f0c80056d829834df4
@@ -67,19 +67,16 @@ int main(int argc, char* argv[])

       SecureVector<byte> sig = b64_decode(sigstr);

-      Pipe pipe(new PK_Verifier_Filter(
-                   get_pk_verifier(*dsakey, "EMSA1(SHA-1)"), sig
-                   )
-         );
+      std::auto_ptr<PK_Verifier> ver(get_pk_verifier(*dsakey, "EMSA1(SHA-1)"));

-      pipe.start_msg();
-      message >> pipe;
-      pipe.end_msg();
+      DataSource_Stream in(message);
+      byte buf[4096] = { 0 };
+      while(u32bit got = in.read(buf, sizeof(buf)))
+         ver->update(buf, got);

-      byte result = 0;
-      pipe.read(result);
+      bool ok = ver->check_signature(sig);

-      if(result)
+      if(ok)
          std::cout << "Signature verified\n";
       else
          std::cout << "Signature did NOT verify\n";
============================================================
--- doc/examples/encrypt.cpp	eb9430dfd41f655a0ba92764172820c755b8b8da
+++ doc/examples/encrypt.cpp	87ea2c212d8ac02aab9e329516faa1f104ac1fa0
@@ -121,7 +121,8 @@ int main(int argc, char* argv[])
       const u32bit key_len = max_keylength_of(algo);
       const u32bit iv_len = block_size_of(algo);

-      std::auto_ptr<RandomNumberGenerator> rng(make_rng());
+      std::auto_ptr<RandomNumberGenerator> rng(
+         RandomNumberGenerator::make_rng());

       std::auto_ptr<S2K> s2k(get_s2k("PBKDF2(SHA-1)"));
       s2k->set_iterations(8192);
============================================================
--- doc/examples/factor.cpp	ccd7d9f57b4aa83b0f37e40f11da5a7ff40d43d0
+++ doc/examples/factor.cpp	51fb64d85755667ddef183e2a0772c343634ea9a
@@ -123,7 +123,8 @@ int main(int argc, char* argv[])
       {
       BigInt n(argv[1]);

-      std::auto_ptr<RandomNumberGenerator> rng(make_rng());
+      std::auto_ptr<RandomNumberGenerator> rng(
+         RandomNumberGenerator::make_rng());

       std::vector<BigInt> factors = factorize(n, *rng);
       std::sort(factors.begin(), factors.end());
============================================================
--- doc/examples/passhash.cpp	a58d867fd42a56e390f2a26b2e65fce72b080b5a
+++ doc/examples/passhash.cpp	7d1729fd83005909291a5af91e50cf967c105e42
@@ -23,7 +23,8 @@ int main(int argc, char* argv[])

       if(argc == 2)
          {
-         std::auto_ptr<RandomNumberGenerator> rng(make_rng());
+         std::auto_ptr<RandomNumberGenerator> rng(
+            RandomNumberGenerator::make_rng());

          std::cout << "H('" << argv[1] << "') = "
                    << password_hash(argv[1], *rng) << '\n';
============================================================
--- doc/examples/pkcs10.cpp	18e1bbf83d04e9a5a1eeed97f361d41eabf8088d
+++ doc/examples/pkcs10.cpp	2f55dc23fbfd39c431f05a4e01072f6a22a837f8
@@ -28,7 +28,9 @@ int main(int argc, char* argv[])

    try
       {
-      std::auto_ptr<RandomNumberGenerator> rng(make_rng());
+      std::auto_ptr<RandomNumberGenerator> rng(
+         RandomNumberGenerator::make_rng());
+
       RSA_PrivateKey priv_key(*rng, 1024);
       // If you want a DSA key instead of RSA, comment out the above line and
       // uncomment this one:
============================================================
--- doc/examples/rsa_dec.cpp	3c7eee6577a3aff0ab79bdf78b2b37580cc91b5b
+++ doc/examples/rsa_dec.cpp	548f30f9ba403b7a8ac655e893946ed381a9dfef
@@ -34,8 +34,12 @@ int main(int argc, char* argv[])

    try
       {
-      std::auto_ptr<RandomNumberGenerator> rng(make_rng());
-      std::auto_ptr<PKCS8_PrivateKey> key(PKCS8::load_key(argv[1], *rng, argv[3]));
+      std::auto_ptr<RandomNumberGenerator> rng(
+         RandomNumberGenerator::make_rng());
+
+      std::auto_ptr<PKCS8_PrivateKey> key(
+         PKCS8::load_key(argv[1], *rng, argv[3]));
+
       RSA_PrivateKey* rsakey = dynamic_cast<RSA_PrivateKey*>(key.get());
       if(!rsakey)
          {
============================================================
--- doc/examples/rsa_enc.cpp	2cffe82b22bee3a8ef7de06186195ee649ef9668
+++ doc/examples/rsa_enc.cpp	f01e8f5ad36889d4f5d131452be49cff1a694da5
@@ -73,7 +73,8 @@ int main(int argc, char* argv[])
          return 1;
          }

-      std::auto_ptr<RandomNumberGenerator> rng(make_rng());
+      std::auto_ptr<RandomNumberGenerator> rng(
+         RandomNumberGenerator::make_rng());

       std::auto_ptr<PK_Encryptor> encryptor(get_pk_encryptor(*rsakey,
                                                              "EME1(SHA-1)"));
@@ -89,7 +90,8 @@ int main(int argc, char* argv[])
          statistically indepedent. Practically speaking I don't think this is
          a problem.
       */
-      SymmetricKey masterkey(*rng, std::min(32U, encryptor->maximum_input_size()));
+      SymmetricKey masterkey(*rng,
+                             std::min(32U, encryptor->maximum_input_size()));

       SymmetricKey cast_key = derive_key("CAST", masterkey, 16);
       SymmetricKey mac_key  = derive_key("MAC",  masterkey, 16);
============================================================
--- doc/examples/rsa_kgen.cpp	fdfbdc77fca641505d6a1aa854bd67fe34095418
+++ doc/examples/rsa_kgen.cpp	be1f2b4ce7898dc39581483342a70c6c19a6deb0
@@ -45,7 +45,9 @@ int main(int argc, char* argv[])

    try
       {
-      std::auto_ptr<RandomNumberGenerator> rng(make_rng());
+      std::auto_ptr<RandomNumberGenerator> rng(
+         RandomNumberGenerator::make_rng());
+
       RSA_PrivateKey key(*rng, bits);
       pub << X509::PEM_encode(key);

============================================================
--- doc/examples/self_sig.cpp	7b9cca9a8f2445c586e59acfd079f94739dd9d1a
+++ doc/examples/self_sig.cpp	d1c702ea771fc2f771878e4078a3daa8728ae96d
@@ -42,7 +42,9 @@ int main(int argc, char* argv[])

    try
       {
-      std::auto_ptr<RandomNumberGenerator> rng(make_rng());
+      std::auto_ptr<RandomNumberGenerator> rng(
+         RandomNumberGenerator::make_rng());
+
       RSA_PrivateKey key(*rng, 1024);

       std::ofstream priv_key("private.pem");