Пример #1
0
		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;
		}
Пример #2
0
        /// <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));
        }
Пример #3
0
		/// <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);
		}