public override byte [] EncryptValue(byte [] key) { //http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/Overview.html byte[] bs1 = _tdcsp.Key; SHA1CryptoServiceProvider sha1Csp = new SHA1CryptoServiceProvider(); byte[] bs2 = sha1Csp.ComputeHash(key); RNGCryptoServiceProvider rNGCryptoServiceProvider = new RNGCryptoServiceProvider(); byte[] bs3 = new byte[8]; rNGCryptoServiceProvider.GetBytes(bs3); byte[] bs4 = new byte[(int)key.Length + 8]; _tdcsp.IV = bs3; Buffer.BlockCopy(key, 0, bs4, 0, (int)key.Length); Buffer.BlockCopy(bs2, 0, bs4, (int)key.Length, 8); TripleDesNoPadding tdnp1 = new TripleDesNoPadding(_tdcsp); byte [] bs5 = tdnp1.Encrypt(bs4); byte[] bs6 = new byte[(int)bs3.Length + (int)bs5.Length]; Buffer.BlockCopy(bs3, 0, bs6, 0, (int)bs3.Length); Buffer.BlockCopy(bs5, 0, bs6, (int)bs3.Length, (int)bs5.Length); Array.Reverse(bs6, 0, bs6.Length); _tdcsp.Key = bs1; _tdcsp.IV = kwIv; TripleDesNoPadding tdnp2 = new TripleDesNoPadding(_tdcsp); byte [] cipher = tdnp2.Encrypt(bs6); return cipher; }
/// <summary> /// Create a new Random Guid using Crypto APIs /// </summary> /// <returns></returns> public static System.Guid NewCryptoGuid() { //create guid manually byte[] guidbytes = new byte[16]; //use crypto apis to generate random bytes OpenNETCF.Security.Cryptography.RNGCryptoServiceProvider rng = new OpenNETCF.Security.Cryptography.RNGCryptoServiceProvider(); rng.GetBytes(guidbytes); //set version etc MakeValidRandomGuid(guidbytes); // create the new System.Guid object return(new System.Guid(guidbytes)); }
/// <summary> /// Create a new Random Guid using Crypto APIs /// </summary> /// <returns></returns> public static System.Guid NewCryptoGuid() { //create guid manually byte[] guidbytes = new byte[16]; //use crypto apis to generate random bytes OpenNETCF.Security.Cryptography.RNGCryptoServiceProvider rng = new OpenNETCF.Security.Cryptography.RNGCryptoServiceProvider(); rng.GetBytes(guidbytes); //set version etc MakeValidRandomGuid(guidbytes); // create the new System.Guid object return new System.Guid(guidbytes); }