Ejemplo n.º 1
0
        private NewPubKeyPayload GenarateStorePayload(PublicKeyStoreDto publicKeyDto)
        {
            var dataHashHex = publicKeyDto.EntityData.Sha512Digest().BytesToHexString();

            byte[] dataHashBytes = Encoding.UTF8.GetBytes(dataHashHex);
            var    hashSignature = publicKeyDto.KeyPair.GetCryptoServiceProvider().SignData(dataHashBytes, HASH_ALGORITHM);

            return(new NewPubKeyPayload
            {
                EntityType = NewPubKeyPayload.Types.EntityType.Personal,
                PublicKeyType = NewPubKeyPayload.Types.PubKeyType.Rsa,
                EntityHash = dataHashBytes.BytesToHexString(),
                EntityHashSignature = hashSignature.BytesToHexString(),
                PublicKey = publicKeyDto.KeyPair.GetPublicKeyPem(),
                ValidFrom = publicKeyDto.ValidityFrom,
                ValidTo = publicKeyDto.ValidityTo
            });
        }
Ejemplo n.º 2
0
        public async Task <BaseTransactionResponse> Store(PublicKeyStoreDto publicKeyDto)
        {
            var storePayload     = GenarateStorePayload(publicKeyDto);
            var remmeTransaction = _remmeTransactionService.GetTransactionPayload(storePayload, 0);

            var nodeStoragePublicKey = (await _remmeTransactionService.GetNodeConfig()).StoragePublicKey;
            var pubKeyAddress        = REMChainUtils.GetAddressFromData(publicKeyDto.KeyPair.GetPublicKeyPem(), FAMILY_NAME);

            var inputsOutputs = _remmeTransactionService.GetDataInputOutput(pubKeyAddress);

            inputsOutputs.Add(REMChainUtils.GetSettingsAddressFromData("remme.economy_enabled"));
            inputsOutputs.Add(REMChainUtils.GetSettingsAddressFromData("remme.settings.storage_pub_key"));
            inputsOutputs.Add(REMChainUtils.GetAddressFromData(nodeStoragePublicKey, RemmeAccount.ACCOUNT_FAMILY_NAME));

            var transactionDto = _remmeTransactionService.GenerateTransactionDto(
                remmeTransaction,
                inputsOutputs,
                FAMILY_NAME,
                FAMILY_VERSION);

            var resultTrans = await _remmeTransactionService.CreateTransaction(transactionDto);

            return(await _remmeTransactionService.SendTransaction(resultTrans));
        }