00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _DECAF_INTERNAL_SECURITY_SECURERANDOMIMPL_H_
00019 #define _DECAF_INTERNAL_SECURITY_SECURERANDOMIMPL_H_
00020
00021 #include <decaf/util/Config.h>
00022
00023 #include <decaf/security/SecureRandomSpi.h>
00024
00025 namespace decaf {
00026 namespace internal {
00027 namespace security {
00028
00029 class SRNGData;
00030
00039 class DECAF_API SecureRandomImpl : public decaf::security::SecureRandomSpi {
00040 private:
00041
00042 SecureRandomImpl( const SecureRandomImpl& );
00043 SecureRandomImpl& operator= ( const SecureRandomImpl& );
00044
00045 private:
00046
00047 SRNGData* config;
00048
00049 public:
00050
00051 SecureRandomImpl();
00052
00053 virtual ~SecureRandomImpl();
00054
00055 virtual void providerSetSeed( const unsigned char* seed, int size );
00056
00057 virtual void providerNextBytes( unsigned char* bytes, int numBytes );
00058
00059 virtual unsigned char* providerGenerateSeed( int numBytes );
00060
00061 };
00062
00063 }}}
00064
00065 #endif