]> Cypherpunks repositories - gostls13.git/commitdiff
crypto/des: add an example to demonstrate EDE2 operation.
authorAdam Langley <agl@golang.org>
Sat, 22 Dec 2012 15:50:11 +0000 (10:50 -0500)
committerAdam Langley <agl@golang.org>
Sat, 22 Dec 2012 15:50:11 +0000 (10:50 -0500)
EDE2 is a rare DES mode that can be implemented with crypto/des, but
it's somewhat non-obvious so this CL adds an example of doing so.

Fixes #3537.

R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/6721056

src/pkg/crypto/des/des_test.go

index e9fc236299ef630d4a3b6ec5607b253e0835aded..2e87e99b67f126ac30f20bd6b7aff9885bb1db9f 100644 (file)
@@ -1503,3 +1503,21 @@ func TestSubstitutionTableKnownAnswerDecrypt(t *testing.T) {
                }
        }
 }
+
+func ExampleNewTripleDESCipher() {
+       // NewTripleDESCipher can also be used when EDE2 is required by
+       // duplicating the first 8 bytes of the 16-byte key.
+       ede2Key := []byte("example key 1234")
+
+       var tripleDESKey []byte
+       tripleDESKey = append(tripleDESKey, ede2Key[:16]...)
+       tripleDESKey = append(tripleDESKey, ede2Key[:8]...)
+
+       _, err := NewTripleDESCipher(tripleDESKey)
+       if err != nil {
+               panic(err)
+       }
+
+       // See crypto/cipher for how to use a cipher.Block for encryption and
+       // decryption.
+}