From 34d90886a0ed3aaf2086633efcde45b227ea27ba Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Tue, 26 Jan 2021 21:25:22 -0500 Subject: challenge: do challenge 15 --- challenge/c15.go | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 challenge/c15.go (limited to 'challenge') diff --git a/challenge/c15.go b/challenge/c15.go new file mode 100644 index 0000000..a48b4b4 --- /dev/null +++ b/challenge/c15.go @@ -0,0 +1,40 @@ +// Copyright © 2021 rsiddharth +// SPDX-License-Identifier: ISC + +package challenge + +import ( + "fmt" + "ricketyspace.net/cryptopals/lib" +) + +func C15() { + ice := lib.StrToBytes("ICE ICE BABY") + fmt.Printf("ice: %v\n", ice) + + padded_ice := lib.Pkcs7Padding(ice, 16) + fmt.Printf("ice padded: %v\n", padded_ice) + + unpadded_ice := lib.Pkcs7PaddingUndo(padded_ice) + for i := 0; i < len(ice); i++ { + if ice[i] != unpadded_ice[i] { + panic("padding undo failed!") + } + } + fmt.Printf("unpadded ice: %v\n", unpadded_ice) + + // Will fail; commented out. + // bad_ice := append(ice, []byte{5, 5, 5, 5}...) + // fmt.Printf("bad ice: %v\n", bad_ice) + // lib.Pkcs7PaddingUndo(bad_ice) + + // Will fail; commented out. + // evil_ice := append(ice, []byte{1, 2, 3, 4}...) + // fmt.Printf("evil ice: %v\n", evil_ice) + // lib.Pkcs7PaddingUndo(evil_ice) +} + +// Output: +// ice: [73 67 69 32 73 67 69 32 66 65 66 89] +// ice padded: [73 67 69 32 73 67 69 32 66 65 66 89 4 4 4 4] +// unpadded ice: [73 67 69 32 73 67 69 32 66 65 66 89] -- cgit v1.2.3