public static byte[] GetSalt(byte[] data) { byte[] salt = new byte[SaltLength]; if (!ToxEncryptionFunctions.GetSalt(data, salt)) { return(null); } return(salt); }
internal static ToxPassKey?DeriveKey(string passphrase) { byte[] pp = Encoding.UTF8.GetBytes(passphrase); var error = ToxErrorKeyDerivation.Ok; var key = new ToxPassKey(); if (!ToxEncryptionFunctions.DeriveKeyFromPass(pp, (uint)pp.Length, ref key, ref error) || error != ToxErrorKeyDerivation.Ok) { return(null); } return(key); }
public static byte[] EncryptData(byte[] data, string password, out ToxErrorEncryption error) { if (data == null) { throw new ArgumentNullException("data"); } if (password == null) { throw new ArgumentNullException("password"); } byte[] output = new byte[data.Length + EncryptionExtraLength]; byte[] passBytes = Encoding.UTF8.GetBytes(password); error = ToxErrorEncryption.Ok; if (!ToxEncryptionFunctions.PassEncrypt(data, (uint)data.Length, passBytes, (uint)passBytes.Length, output, ref error) || error != ToxErrorEncryption.Ok) { return(null); } return(output); }
public static byte[] DecryptData(byte[] data, ToxEncryptionKey key, out ToxErrorDecryption error) { if (data == null) { throw new ArgumentNullException("data"); } if (key == null) { throw new ArgumentNullException("key"); } byte[] output = new byte[data.Length - EncryptionExtraLength]; var pass = key.ToPassKey(); error = ToxErrorDecryption.Ok; if (!ToxEncryptionFunctions.PassKeyDecrypt(data, (uint)data.Length, ref pass, output, ref error) || error != ToxErrorDecryption.Ok) { return(null); } return(output); }
public static bool IsDataEncrypted(byte[] data) { return(ToxEncryptionFunctions.IsDataEncrypted(data)); }