17 class CLASS_DECL_ACME crypto :
18 virtual public ::object
25 ::pointer<::crypto::initializer> m_pinitializer;
32 virtual void defer_initialize();
35 virtual ::pointer<::crypto::hasher_algorithm>create_hasher_algorithm(enum_hash ehash);
36 virtual ::pointer<::crypto::hasher>create_hasher(enum_hash ehash);
39 virtual void encrypt(
memory& storageEncrypt,
const block & blockDecrypt,
const block & blockKey) = 0;
40 virtual void decrypt(
memory& storageDecrypt,
const block & blockEncrypt,
const block & blockKey) = 0;
49 virtual ::i32 key(
memory & storage);
51 virtual string strkey();
52 virtual void encrypt(
string & str,
const block & blockDecrypt,
const block & blockKey);
53 virtual void decrypt(
string & str,
const block & blockEncrypt,
const block & blockKey);
56 virtual ::i32 get_md5_digest_length()
const;
57 virtual ::i32 get_sha1_digest_length()
const;
58 virtual ::i32 get_sha256_digest_length()
const;
59 virtual ::i32 get_nessie_digest_length()
const;
71 virtual ::i32 get_hash_digest_length(enum_hash)
const = 0;
73 virtual void hash(
memory& memOut,
const block & blockIn, enum_hash ehash);
82 virtual void hmac(
void * result,
const memory & memMessage,
const memory & key) = 0;
83 virtual void hmac(
void * result,const ::scoped_string & scopedstrMessage,const ::scoped_string & scopedstrKey) = 0;
85 virtual void file_set(::payload payloadFile,const ::scoped_string & scopedstrData,const ::scoped_string & scopedstrSalt,
::platform::application * papp);
86 virtual void file_get(::payload payloadFile,
string & str,const ::scoped_string & scopedstrSalt,
::platform::application * papp);
92 virtual string v5_get_password_salt();
94 virtual string v5_get_password_hash(const ::scoped_string & scopedstrSalt,const ::scoped_string & scopedstrPassword,::i32 iOrder = 0);
95 virtual string v5_get_passhash(const ::scoped_string & scopedstrSalt,const ::scoped_string & scopedstrPassword,::i32 iMaxOrder = 0);
96 virtual bool v5_compare_password(const ::scoped_string & scopedstrPassword,const ::scoped_string & scopedstrHash,::i32 iOrder = 0);
100 virtual bool v5_validate_plain_password(const ::scoped_string & scopedstrPassword);
101 virtual string v5_get_password_hash(const ::scoped_string & scopedstrPassword,::i32 iOrder = 0);
103 virtual ::file::path get_crypt_key_file_path();
104 virtual ::memory defer_get_cryptkey();
107 virtual ::pointer<rsa>create_rsa_key(const ::scoped_string & scopedstrRsa);
109 virtual ::pointer<rsa>generate_rsa_key();
111 virtual ::pointer<rsa>read_priv_pem(const ::scoped_string & scopedstrFile);
113 virtual ::pointer<rsa>read_pub_pem(const ::scoped_string & scopedstrFile);
122 virtual string spa_login_crypt(const ::scoped_string & scopedstr,const ::scoped_string & scopedstrRsa);
123 virtual string spa_login_decrypt(const ::scoped_string & scopedstr,const ::scoped_string & scopedstrRsa);
125 virtual string spa_auth_crypt(const ::scoped_string & scopedstr,
rsa * prsa);
126 virtual string spa_auth_decrypt(const ::scoped_string & scopedstr,
rsa * prsa);
127 virtual string spa_auth_decrypt(const ::scoped_string & scopedstr,const ::scoped_string & scopedstrRsa);
129 virtual string txt_encrypt(const ::scoped_string & scopedstr,
rsa * prsa);
130 virtual string txt_decrypt(const ::scoped_string & scopedstr,
rsa * prsa);
148CLASS_DECL_ACME
void stunCalculateIntegrity_longterm(char_pointer hmac, const_char_pointer input, ::i32 length, const_char_pointer username, const_char_pointer realm, const_char_pointer password);
150CLASS_DECL_ACME
void stunCalculateIntegrity_shortterm(char_pointer hmac, const_char_pointer input, ::i32 length, const_char_pointer key);