コード例 #1
0
        /// <summary>
        /// 将一个对象序列化为字节数组。
        /// </summary>
        /// <param name="obj">要序列化的对象。</param>
        /// <returns>序列化后的字节数组。</returns>
        public override byte[] Serialize <T>(T obj)
        {
            try
            {
                using (var stream = new MemoryStream())
                {
                    var bin = new BinaryFormatter();
                    bin.Serialize(stream, obj);
                    var bytes = cryptoProvider.Encrypt(stream.ToArray());

                    using (var nstream = new MemoryStream())
                    {
                        if (Token != null && Token.Data != null && Token.Data.Length > 0)
                        {
                            nstream.Write(Token.Data, 0, Token.Data.Length);
                        }

                        nstream.Write(bytes, 0, bytes.Length);

                        return(nstream.ToArray());
                    }
                }
            }
            catch (Exception ex)
            {
                throw new SerializationException(SR.GetString(SRKind.SerializationError), ex);
            }
        }
コード例 #2
0
        /// <summary>
        /// Saves changes
        /// </summary>
        /// <returns>self, fluent interface</returns>
        public ISettingsProvider Save()
        {
            var serialized = JsonConvert.SerializeObject(_data, _serializerSettings);

            PlayerPrefs.SetString(_cryptoProvider.Hash("_data"), _cryptoProvider.Encrypt(serialized));
            PlayerPrefs.Save();

            return(this);
        }
コード例 #3
0
        public ActionResult Create(AwsProfileViewModel profileViewModel)
        {
            try
            {
                if (ValidateViewModelAgainstExternalSources(profileViewModel, newProfile: true))
                {
                    string dataKey;
                    string encryptedStrings = _cryptoProvider.Encrypt(
                        out dataKey,
                        profileViewModel.SecretAccessKey
                        );

                    var profile = new AwsProfile
                    {
                        Name                     = profileViewModel.Name,
                        Account                  = profileViewModel.Account,
                        AccessKeyId              = profileViewModel.AccessKeyId,
                        EncryptedKey             = dataKey,
                        EncryptedSecretAccessKey = encryptedStrings,
                        DefaultVpcId             = profileViewModel.DefaultVpcId,
                        DefaultSubnetId          = profileViewModel.DefaultSubnetId,
                        HostedZone               = profileViewModel.HostedZone,
                        Groups                   = profileViewModel.Groups,
                        DetailedBillingS3Bucket  = profileViewModel.DetailedBillingS3Bucket,
                    };

                    _profileRepository.Add(profile);

                    _backgroundJobClient.Enqueue <CreateDefaultSecurityGroup>(x => x.Execute(profile.Id, profileViewModel.DefaultVpcId));
                    _backgroundJobClient.Enqueue <CreateIpRange>(x => x.Execute(profile.Id, profileViewModel.DefaultSubnetId));

                    return(RedirectToAction("Index"));
                }
            }
            catch (Exception e)
            {
                // TODO: Just for debugging! Remove this. Don't show this to the user, but log it somewhere for troubleshooting purposes.
                ModelState.AddModelError("", string.Format("There was a problem creating the profile. {0}", e.Message));
            }

            // If we make it this far, something bad happened. Display the error message to the user.
            return(View(profileViewModel));
        }
コード例 #4
0
        public CryptoKeyProtector(string name, byte[] key, object parms = null, object[] state = null)
        {
            _decryptedKey = key;

            ProtectorName  = name;
            ProtectorState = state;
            InstantiateProvider();

            // Initialise if possible
            if (Provider is IInitiableProvider initiable)
            {
                initiable.Initialise(parms);
            }

            // Finally, set the provider's key
            if (_decryptedKey != null)
            {
                ProtectorKey = Provider.Encrypt(_decryptedKey);
            }
        }
コード例 #5
0
 /// <summary>
 /// Serializes an <see cref="T:Photon.SocketServer.OperationResponse"/>.
 /// The operation response data will be encrypted using the specified <see cref="T:Photon.SocketServer.Security.ICryptoProvider"/>.
 /// </summary>
 /// <param name="operationResponse"> The response.</param>
 /// <param name="cryptoProvider">An <see cref="T:Photon.SocketServer.Security.ICryptoProvider"/> instance used to encrypt the operation response.</param>
 /// <returns>The serialized operation response.</returns>
 public byte[] SerializeOperationResponseEncrypted(OperationResponse operationResponse, ICryptoProvider cryptoProvider)
 {
     byte[] buffer;
     using (ReusableMemoryStream stream = new ReusableMemoryStream())
     {
         SerializeOperationResponse(stream, operationResponse);
         byte[] data = stream.ToArray();
         buffer = cryptoProvider.Encrypt(data);
     }
     using (ReusableMemoryStream stream2 = new ReusableMemoryStream())
     {
         stream2.Position = this.headerSize;
         stream2.Write(buffer, 0, buffer.Length);
         stream2.Position = 0L;
         this.headerWriter.WriteHeader(stream2, RtsMessageType.OperationResponse, true);
         return(stream2.ToArray());
     }
 }
コード例 #6
0
 /// <summary>
 /// Encrypts an event.
 /// </summary>
 /// <param name="eventData"> The event data.</param>
 /// <param name="cryptoProvider">The crypto provider.</param>
 /// <returns>the encrypted event.</returns>
 /// <exception cref="T:System.ArgumentNullException">
 /// cryptoProvider is null.
 /// </exception>
 public byte[] SerializeEventDataEncrypted(IEventData eventData, ICryptoProvider cryptoProvider)
 {
     byte[] buffer;
     if (cryptoProvider == null)
     {
         throw new ArgumentNullException("cryptoProvider");
     }
     using (ReusableMemoryStream stream = new ReusableMemoryStream())
     {
         SerializeEventData(stream, eventData);
         byte[] data = stream.ToArray();
         buffer = cryptoProvider.Encrypt(data, 0, data.Length);
     }
     using (ReusableMemoryStream stream2 = new ReusableMemoryStream())
     {
         stream2.WriteByte(0xf3);
         stream2.WriteByte(0x84);
         stream2.Write(buffer, 0, buffer.Length);
         return(stream2.ToArray());
     }
 }
コード例 #7
0
 /// <summary>
 /// Serializes an <see cref="T:Photon.SocketServer.OperationResponse"/>.
 /// The operation response data will be encrypted using the specified <see cref="T:Photon.SocketServer.Security.ICryptoProvider"/>.
 /// </summary>
 /// <param name="operationResponse"> The response.</param>
 /// <param name="cryptoProvider">An <see cref="T:Photon.SocketServer.Security.ICryptoProvider"/> instance used to encrypt the operation response.</param>
 /// <returns>The serialized operation response.</returns>
 public byte[] SerializeOperationResponseEncrypted(OperationResponse operationResponse, ICryptoProvider cryptoProvider)
 {
     byte[] buffer;
     if (cryptoProvider == null)
     {
         throw new ArgumentNullException("cryptoProvider");
     }
     using (ReusableMemoryStream stream = new ReusableMemoryStream())
     {
         SerializeOperationResponse(stream, operationResponse);
         byte[] data = stream.ToArray();
         buffer = cryptoProvider.Encrypt(data);
     }
     using (ReusableMemoryStream stream2 = new ReusableMemoryStream())
     {
         stream2.WriteByte(0xf3);
         stream2.WriteByte(0x83);
         stream2.Write(buffer, 0, buffer.Length);
         return(stream2.ToArray());
     }
 }
コード例 #8
0
 public byte[] SerializeEventDataEncrypted(IEventData eventData, ICryptoProvider cryptoProvider)
 {
     byte[] buffer;
     if (cryptoProvider == null)
     {
         throw new ArgumentNullException("cryptoProvider");
     }
     using (ReusableMemoryStream stream = new ReusableMemoryStream())
     {
         SerializeEventData(stream, eventData);
         byte[] data = stream.ToArray();
         buffer = cryptoProvider.Encrypt(data, 0, data.Length);
     }
     using (ReusableMemoryStream stream2 = new ReusableMemoryStream())
     {
         stream2.Position = this.headerSize;
         stream2.Write(buffer, 0, buffer.Length);
         stream2.Position = 0L;
         this.headerWriter.WriteHeader(stream2, RtsMessageType.Event, true);
         return(stream2.ToArray());
     }
 }
コード例 #9
0
ファイル: Cryptor.cs プロジェクト: masi456/OnedriveCryptor
        public void Encrypt(IDataSource dataSource, IDataDestination dataDestination)
        {
            var encryptedData = _cryptoProvider.Encrypt(dataSource.GetData());

            dataDestination.PutData(encryptedData);
        }
コード例 #10
0
        private static XElement WriteSettings(string sectionXmlName, NameValueSettings sectionSource, ICryptoProvider cryptoProvider, bool encryptAll)
        {
            //Write the settings
            var section = new XElement(sectionXmlName);

            var rawSource = sectionSource.RawSettings;
            foreach (string key in rawSource.AllKeys)
            {
                //Add the description if appropriate
                string description = sectionSource.GetDescription(key);
                if (description.Length > 0)
                {
                    section.Add(new XComment(description));
                }

                //Encrypt if appropriate
                string val = rawSource[key];
                if (cryptoProvider != null && (encryptAll || sectionSource.IsEncrypted(key)))
                {
                    val = cryptoProvider.Encrypt(val);
                }

                section.Add(new XElement(
                    ConfigElement.KeyValueSettingNode,
                    new XAttribute(ConfigElement.SettingKeyAttribute, key),
                    new XAttribute(ConfigElement.SettingValueAttribute, val)));
            }

            return section;
        }
コード例 #11
0
 protected override byte[] EncodeDataToBytes(CodedData data)
 {
     return(cryptor.Encrypt(data.Data));
 }
コード例 #12
0
 public void EncryptMessage(object obj)
 {
     DecryptoText = ConvertToString(_provider.Encrypt(ConvertToStringArray(EncryptoText)));
     EncryptoText = null;
 }