~john-koepi/ubuntu/trusty/golang/default

« back to all changes in this revision

Viewing changes to doc/talks/io2010/encrypt.go

  • Committer: Bazaar Package Importer
  • Author(s): Ondřej Surý
  • Date: 2011-04-20 17:36:48 UTC
  • Revision ID: james.westby@ubuntu.com-20110420173648-ifergoxyrm832trd
Tags: upstream-2011.03.07.1
Import upstream version 2011.03.07.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// Copyright 2010 The Go Authors.  All rights reserved.
 
2
// Use of this source code is governed by a BSD-style
 
3
// license that can be found in the LICENSE file.
 
4
 
 
5
package main
 
6
 
 
7
import (
 
8
        "crypto/aes"
 
9
        "crypto/block"
 
10
        "compress/gzip"
 
11
        "io"
 
12
        "os"
 
13
)
 
14
 
 
15
func EncryptAndGzip(dstfile, srcfile string, key, iv []byte) {
 
16
        r, _ := os.Open(srcfile, os.O_RDONLY, 0)
 
17
        var w io.WriteCloser
 
18
        w, _ = os.Open(dstfile, os.O_WRONLY|os.O_CREATE, 0666)
 
19
        defer w.Close()
 
20
        w, _ = gzip.NewDeflater(w)
 
21
        defer w.Close()
 
22
        c, _ := aes.NewCipher(key)
 
23
        io.Copy(block.NewCBCEncrypter(c, iv, w), r)
 
24
}
 
25
 
 
26
func main() {
 
27
        EncryptAndGzip("/tmp/passwd.gz", "/etc/passwd", make([]byte, 16), make([]byte, 16))
 
28
}