From 8f1d170fc6758842a1dc89075a050716fa4dc6c3 Mon Sep 17 00:00:00 2001 From: Adam Langley Date: Sat, 22 Dec 2012 10:50:11 -0500 Subject: [PATCH] crypto/des: add an example to demonstrate EDE2 operation. 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 | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/pkg/crypto/des/des_test.go b/src/pkg/crypto/des/des_test.go index e9fc236299..2e87e99b67 100644 --- a/src/pkg/crypto/des/des_test.go +++ b/src/pkg/crypto/des/des_test.go @@ -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. +} -- 2.48.1