xboxkrnl: Add a bunch of crypto functions

This commit is contained in:
Dr. Chat
2016-07-11 10:34:33 -05:00
parent 99f3c61fc1
commit fb87b7a3c3
14 changed files with 1506 additions and 14 deletions

40
third_party/crypto/des/des3.h vendored Normal file
View File

@@ -0,0 +1,40 @@
#ifndef DES3_H
#define DES3_H
#include "des.h"
class DES3
{
public:
DES3(ui64 k1, ui64 k2, ui64 k3) : des{ DES(k1), DES(k2), DES(k3) } {}
DES3(ui64* sk1, ui64* sk2, ui64* sk3) : des{ DES(sk1), DES(sk2), DES(sk3) } {}
inline ui64 encrypt(ui64 block)
{
return des[2].encrypt(des[1].decrypt(des[0].encrypt(block)));
}
inline ui64 decrypt(ui64 block)
{
return des[0].decrypt(des[1].encrypt(des[2].decrypt(block)));
}
inline ui64 crypt(ui64 block, bool bEncrypt)
{
if (bEncrypt)
{
return encrypt(block);
}
else
{
return decrypt(block);
}
}
inline DES* getDES() { return des; }
private:
DES des[3];
};
#endif // DES3_H