示例#1
0
        public async Task <CmsFile?> ReadFile(string fileName)
        {
            var response = await _client.DownloadFileAsByteArrayAsync(fileName);

            return(new CmsFile {
                Bytes = response.file, ContentType = response.contentType
            });
        }
示例#2
0
        public async Task DownloadFileAsByteArrayAsync()
        {
            string skylink = "AAAAQZg5XQJimI9FGR73pOiC2PnflFRh03Z4azabKz6bVw";

            var result = await _client.DownloadFileAsByteArrayAsync(skylink);

            Assert.IsNotNull(result.file);
            Assert.AreEqual("text/plain", result.contentType);
            Assert.AreEqual("test.txt", result.fileName);
        }
示例#3
0
        public async Task <string> GetMessage([FromBody] GetMessageRequest req)
        {
            //Check hash
            var hashKey = SiaSkynetClient.GenerateKeys(req.Address);

            var cipherData = Utils.HexStringToByteArray(req.SecretHash);
            var decrypt    = Utils.Decrypt(cipherData, hashKey.privateKey);

            if (decrypt == null)
            {
                throw new Exception("Invalid hash.");
            }


            string address = req.Address.ToLowerInvariant();
            string seed    = $"{secretConfig.SkynetSeed}-{address}";
            var    key     = SiaSkynetClient.GenerateKeys(seed);

            var encryptedData = await client.DownloadFileAsByteArrayAsync(req.Skylink);

            var data = Utils.Decrypt(encryptedData.file, key.privateKey);

            return(Encoding.UTF8.GetString(data));
        }