<html><head><style>body{font-family:Helvetica,Arial;font-size:13px}</style></head><body style="word-wrap:break-word"><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">Hi Virgil,</div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto"><br></div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">If you're dealing with a small file (where small is defined as "amount you're willing to buffer in memory") then you can just read the file, encrypt it using Fernet, and then write the results to disk.</div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto"><br></div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">If the file is bigger then you'll want to read the file in chunks, pass those chunks to a cipher context (see the symmetric encryption docs), and write the results from "update" to a separate file incrementally. Note that finalize can also yield bytes so don't forget to write those as well.</div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto"><br></div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">If you need to do the latter option you should either use an authenticated encryption mode (like GCM) or do an HMAC of the encrypted bytes as well. When decrypting you'll then either pass the GCM tag to the decrypt context or verify the HMAC yourself. This prevents tampering with the ciphertext, but bear in mind you don't have verification that the data has not been modified until you process the entire file. Fernet does all this for you, which is why it's preferable if your files are small.</div> <div><br></div>-Paul Kehrer (reaperhulk)<br> <div id="bloop_sign_1479059584459884032" class="bloop_sign"></div> <br><p class="airmail_on">On November 13, 2016 at 7:03:49 AM, Virgil Stokes (<a href="mailto:vs@it.uu.se">vs@it.uu.se</a>) wrote:</p> <blockquote type="cite" class="clean_bq"><span><div><div></div><div>I have looked at all the documentation and postings that I could find on  
<br>cryptography and still have been unable to find how to use it with file(s).
<br>
<br>Anyone's help on this would be greatly appreciated.
<br>
<br>--V
<br>
<br>_______________________________________________
<br>Cryptography-dev mailing list
<br><a href="mailto:Cryptography-dev@python.org">Cryptography-dev@python.org</a>
<br><a href="https://mail.python.org/mailman/listinfo/cryptography-dev">https://mail.python.org/mailman/listinfo/cryptography-dev</a>
<br></div></div></span></blockquote></body></html>