README
上传用户:sy_wanhua
上传日期:2013-07-25
资源大小:3048k
文件大小:3k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

C/C++

  1. Yarrow - Secure Pseudo-Random Number Generator
  2. ==============================================
  3. This is an implementation of the cryptographic pseudo-random number
  4. generator Yarrow.  You are encouraged to use, modify, and incorporate
  5. this code.  Please see the accompanying LICENSE file for more details.
  6. Yarrow can be used with OpenSSL 0.9.5a (http://www.openssl.org) and
  7. other cryptographic libraries.
  8. The Yarrow design is described in "Yarrow-160: Notes on the Design and
  9. Analysis of the Yarrow Cryptographic Pseudorandom Number Generator" by
  10. John Kelsey, Bruce Schneier and Niels Ferguson of Counterpane Systems,
  11. available from http://www.counterpane.com/yarrow.html
  12. The Yarrow function calls are described in the yarrow(3) manpage.
  13. Installation
  14. ============
  15. By default, Yarrow is built with OpenSSL. If the OpenSSL headers are
  16. not installed in the standard directory /usr/local/ssl/include,
  17. set the path in the Makefile.
  18. If it is possible that an application using Yarrow will fork(), Yarrow
  19. must be compiled with -DYARROW_DETECT_FORK (then the child process
  20. will have to seed Yarrow again), or the Yarrow_CTX must be allocated
  21. in shared memory.
  22. If compiled with -DYARROW_SAVE_STATE, Yarrow will use a seed file
  23. specified in the Yarrow_Init call.
  24. When the settings in the Makefile are correct, run "make".
  25. Yarrow with OpenSSL:
  26. -------------------
  27. The macros YARROW_CIPHER_3DES (default), YARROW_CIPHER_BLOWFISH and
  28. YARROW_CIPHER_IDEA for ciphers and YARROW_HASH_SHA1 (default) and
  29. YARROW_HASH_MD5 for hash functions are available to select algorithms
  30. from OpenSSL.
  31. CRYPTO_set_locking_callback() is required in multithreaded applications.
  32. Yarrow with other cryptographic libraries:
  33. -----------------------------------------
  34. The Yarrow implementation uses a symmetric cipher, a cryptographic
  35. hash function and a mutex. By default, Yarrow calls OpenSSL. For use
  36. with other cryptographic libraries, the following types and macros
  37. should be defined:
  38. Symmetric cipher - ycipher.h:
  39.   typedef struct { ... } CIPHER_CTX;
  40.   #define CIPHER_BLOCK_SIZE ...
  41.   #define CIPHER_KEY_SIZE ...
  42.   void CIPHER_Init(CIPHER_CTX *ctx, void *key);
  43.   void CIPHER_Encrypt_Block(CIPHER_CTX *ctx, void *in, void *out);
  44. Hash function - yhash.h:
  45.   typedef struct { ... } HASH_CTX;
  46.   #define HASH_DIGEST_SIZE ...
  47.   #define HASH_STATE_SIZE ...
  48.   void HASH_Init(HASH_CTX *ctx);
  49.   void HASH_Update(HASH_CTX *ctx, const void *data, unsigned long size);
  50.   void HASH_Final(HASH_CTX *ctx, unsigned char *md);
  51. Mutex - ylock.h:
  52.   int LOCK(void);
  53.   int UNLOCK(void);
  54. Learn More:
  55. ----------
  56. It is Zero-Knowledge's hope that third party developers of yarrow will
  57. collaborate to derive test vectors for yarrow.  In an effort to further
  58. this discussion, we have created a mailing list for developers and
  59. interested parties.  To subscribe, send an email to
  60. "yarrow-request@zeroknowledge.com" with "subscribe" in the body of the
  61. message.
  62. For more information, or if you have questions or comments regarding open
  63. source at Zero-Knowledge Systems, please visit
  64. http://opensource.zeroknowledge.com