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

This diff has been restricted to the following files: 'doc/examples/dsa_sign.cpp'

#
#
# patch "doc/examples/dsa_sign.cpp"
#  from [ef581f16fded1583144a1b645d87f1f831404a5e]
#    to [009ee6115f1c18934b7dfeaabd8810660261e70b]
#
============================================================
--- 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)