Пример #1
0
        public async Task <IActionResult> Register(RegisterParticipant request)
        {
            var participant = await _mediator.Send(request);

            participant.AuthToken = _encryptor.EncryptData(participant.Id);
            return(Ok(participant));
        }
Пример #2
0
 public string Encrypt(string data)
 {
     if (_encryptor == null)
     {
         throw new ArgumentNullException();
     }
     if (string.IsNullOrEmpty(data))
     {
         throw new InvalidEnumArgumentException();
     }
     Console.WriteLine("Input data: " + data);
     return(_encryptor.EncryptData(data));
 }
Пример #3
0
        private static void ProcessEncryptCommand(EncryptVerbOptions options)
        {
            string inputFilePath = options.InputFilePath;

            Console.Out.WriteLine($@"The file ""{Path.GetFileName(inputFilePath)}"" is being encrypted...");

            byte[] inputByteArray = File.ReadAllBytes(inputFilePath);
            byte[] keyByteArray   = File.ReadAllBytes(options.KeyPath);

            IEncryptor desEncryptor = CryptoFactory.CreateEncryptor(inputByteArray, keyByteArray);

            byte[] encryptedData = desEncryptor.EncryptData();

            GenerateOutputFileNameIfNotSet(options);
            FileStream outputFileStream = File.OpenWrite(options.OutputFilePath);

            outputFileStream.Write(encryptedData, 0, encryptedData.Length);

            Console.Out.WriteLine($"The result file is: {Path.GetFileName(options.OutputFilePath)}");
        }
Пример #4
0
        public virtual Option <EncryptedEntries> Process(Entries entries,
                                                         HipLibrary.Patient.Model.KeyMaterial dataRequestKeyMaterial, string transactionId)
        {
            var keyPair = EncryptorHelper.GenerateKeyPair(dataRequestKeyMaterial.Curve,
                                                          dataRequestKeyMaterial.CryptoAlg);
            var randomKey = EncryptorHelper.GenerateRandomKey();

            var processedEntries = new List <Entry>();
            var careBundles      = entries.CareBundles;

            foreach (var careBundle in careBundles)
            {
                var encryptData =
                    encryptor.EncryptData(dataRequestKeyMaterial,
                                          keyPair,
                                          Serializer.SerializeToString(careBundle.BundleForThisCcr), randomKey);
                if (!encryptData.HasValue)
                {
                    return(Option.None <EncryptedEntries>());
                }

                encryptData.MatchSome(content =>
                {
                    var entry = IsLinkable(content)
                        ? StoreComponentAndGetLink(ComponentEntry(content, careBundle.CareContextReference),
                                                   careBundle.CareContextReference)
                        : ComponentEntry(content, careBundle.CareContextReference);
                    processedEntries.Add(entry);
                });
            }

            var keyStructure = new KeyStructure(DateTime.Now.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ"),
                                                dataRequestKeyMaterial.DhPublicKey.Parameters, EncryptorHelper.GetPublicKey(keyPair));
            var keyMaterial = new KeyMaterial(dataRequestKeyMaterial.CryptoAlg,
                                              dataRequestKeyMaterial.Curve,
                                              keyStructure, randomKey);

            return(Option.Some(new EncryptedEntries(processedEntries.AsEnumerable(), keyMaterial)));
        }