locked
decrypt file being downloaded from azure RRS feed

  • Question

  • User1717218719 posted

    I have tried the following code below to decrypt my file which is being downloaded from azure. Unfortunatly the decrypt code is not working fully as it decrypts a file from local files not straight from azure therefore the path of the file is not correct. how would I go about changing my decrypt code to work for this situation?

    any help on this would be great!

    many thanks

        '--DOWNLOAD FROM AZURE 
        Protected Sub DwnLd_Click(ByVal sender As Object, ByVal e As EventArgs)
    ")
    
            '--get id in gridview row
            Dim lb As LinkButton = CType(sender, LinkButton)
            Dim row As GridViewRow = CType(lb.NamingContainer, GridViewRow)
    
            If row IsNot Nothing Then
                Dim index As Integer = row.RowIndex
    
                If index <> -1 Then
    
                    Dim id = GridView1.DataKeys(index).Values(0).ToString()
    
                    Dim path2 = "file\path\" & id.ToString
    
                    Dim StorageConnStr As String = "xxxxxxxxxxxxxx"
    Dim containerName = "xxxxxxxxxxxx" Dim BlobstorageConnection As String = CloudConfigurationManager.GetSetting(StorageConnStr) Dim MycloudStorageAccount As CloudStorageAccount = CloudStorageAccount.Parse(StorageConnStr) Dim MyblobClient As CloudBlobClient = MycloudStorageAccount.CreateCloudBlobClient() Dim MycloudBlobContainer As CloudBlobContainer = MyblobClient.GetContainerReference(containerName) Dim MYblockBlob As CloudBlockBlob = MycloudBlobContainer.GetBlockBlobReference(path2) '--Decrypt file here before download 'Build the File Path for the original (input) and the decrypted (output) file Dim input As String = path2 Dim output As String = path2 & "_dec" 'Save the Input File, Decrypt it and save the decrypted file in output path. MsgBox(output.ToString) Me.Decrypt(input, output) 'Dim newMYblockBlob As CloudBlockBlob = MycloudBlobContainer.GetBlockBlobReference(output) Dim memStream As MemoryStream = New MemoryStream() MYblockBlob.DownloadToStream(memStream) HttpContext.Current.Response.ContentType = MYblockBlob.Properties.ContentType.ToString() HttpContext.Current.Response.AddHeader("Content-Disposition", "Attachment; filename=" & MYblockBlob.ToString()) HttpContext.Current.Response.AddHeader("Content-Length", MYblockBlob.Properties.Length.ToString()) HttpContext.Current.Response.BinaryWrite(memStream.ToArray()) HttpContext.Current.Response.Flush() HttpContext.Current.Response.Close() Response.Redirect("~/") End If End If End Sub '----------Decrypt---------- Private Sub Decrypt(inputFilePath As String, outputfilePath As String) Dim EncryptionKey As String = ConfigurationManager.AppSettings("Encrypt") Using encryptor As Aes = Aes.Create() Dim pdb As New Rfc2898DeriveBytes(EncryptionKey, New Byte() {&H49, &H76, &H61, &H6E, &H20, &H4D, &H65, &H64, &H76, &H65, &H64, &H65, &H76}) encryptor.Key = pdb.GetBytes(32) encryptor.IV = pdb.GetBytes(16) Using fs As New FileStream(inputFilePath, FileMode.Open) Using cs As New CryptoStream(fs, encryptor.CreateDecryptor(), CryptoStreamMode.Read) Using fsOutput As New FileStream(outputfilePath, FileMode.Create) Dim data As Integer While (Assign(data, cs.ReadByte())) <> -1 fsOutput.WriteByte(CByte(data)) End While End Using End Using End Using End Using End Sub

    Monday, February 24, 2020 8:41 AM

Answers

  • User283571144 posted

    Hi E.RU ,

    As far as I know, we couldn't use azure blob path to decript the file.  We need firstly download it and then decript it. 

    The right way is you directly download the file to a path and then use that path instead of azure blob file path directly.

    Best Regards,

    Brando

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Tuesday, February 25, 2020 2:45 AM

All replies

  • User283571144 posted

    Hi E.RU ,

    As far as I know, we couldn't use azure blob path to decript the file.  We need firstly download it and then decript it. 

    The right way is you directly download the file to a path and then use that path instead of azure blob file path directly.

    Best Regards,

    Brando

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Tuesday, February 25, 2020 2:45 AM
  • User1717218719 posted

    Hi Brando

    Thank you For your help, I will try this method. How should I code this ? I have code that downloads the encrypted file from azure but how should I go about saving the enc file to a (temp local)path ?

    Many thanks

    Tuesday, February 25, 2020 8:38 AM