Ejemplo n.º 1
0
 public ActionResult <KeysModel> GetKeys()
 {
     Debug.WriteLine("[API]: GetKeys - return SEAL public and secret keys to client");
     return(new KeysModel
     {
         PublicKey = SEALUtils.PublicKeyToBase64String(_keyGenerator.PublicKey),
         SecretKey = SEALUtils.SecretKeyToBase64String(_keyGenerator.SecretKey)
     });
 }
Ejemplo n.º 2
0
        public ActionResult ComputePrime([FromBody] PrimeItem request)
        {
            var prime = request.Prime;

            _prime = Convert.ToInt64(prime);
            for (long i = 2; i < _prime / 2; i++)
            {
                if (_prime % i == 0)
                {
                    _answer[0] = i;
                    _answer[1] = _prime / i;
                    break;
                }
            }

            // TODO 此处添加对_answer和 _prime加密的功能
            var plainprime = new Plaintext($"{_prime.ToString("X")}");

            Console.WriteLine(_prime);
            var ciphertextprime = new Ciphertext();

            _encryptor.Encrypt(plainprime, ciphertextprime);
            var base64Prime = SEALUtils.CiphertextToBase64String(ciphertextprime);

            var plainfactor1      = new Plaintext($"{_answer[0].ToString("X")}");
            var ciphertextfactor1 = new Ciphertext();

            _encryptor.Encrypt(plainfactor1, ciphertextfactor1);
            var base64Factor1 = SEALUtils.CiphertextToBase64String(ciphertextfactor1);

            var plainfactor2      = new Plaintext($"{_answer[1].ToString("X")}");
            var ciphertextfactor2 = new Ciphertext();

            _encryptor.Encrypt(plainfactor2, ciphertextfactor2);
            var base64Factor2 = SEALUtils.CiphertextToBase64String(ciphertextfactor2);

            var publicKey = SEALUtils.PublicKeyToBase64String(_keyGenerator.PublicKey);
            var secretKey = SEALUtils.SecretKeyToBase64String(_keyGenerator.SecretKey);

            _base64Prime   = base64Prime;
            _base64Factor1 = base64Factor1;
            _base64Factor2 = base64Factor2;
            _publicKey     = publicKey;
            _secretKey     = secretKey;


            return(Ok());
        }