diff options
Diffstat (limited to 'challenge/c39.go')
-rw-r--r-- | challenge/c39.go | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/challenge/c39.go b/challenge/c39.go new file mode 100644 index 0000000..e4c0bf7 --- /dev/null +++ b/challenge/c39.go @@ -0,0 +1,53 @@ +// Copyright © 2022 siddharth ravikumar <s@ricketyspace.net> +// SPDX-License-Identifier: ISC + +package challenge + +import ( + "fmt" + + "ricketyspace.net/cryptopals/lib" +) + +func C39() { + rsa, err := lib.RSAGenKey() + if err != nil { + fmt.Printf("gen key failed: %v", err) + } + + msg := []byte("42") + enc := rsa.Public.Encrypt(msg) + if len(enc) < 1 { + fmt.Printf("encrypt failed: %v", enc) + return + } + dec := rsa.Private.Decrypt(enc) + if !lib.BytesEqual(msg, dec) { + fmt.Printf("decrypt failed: %v", dec) + return + } + + msg = []byte("0x42") + enc = rsa.Public.Encrypt(msg) + if len(enc) < 1 { + fmt.Printf("encrypt failed: %v", enc) + return + } + dec = rsa.Private.Decrypt(enc) + if !lib.BytesEqual(msg, dec) { + fmt.Printf("decrypt failed: %v", dec) + return + } + + msg = []byte("68f13a29c10617c2c87cccb8db2d40ba05191f75f5a08978e84d829a543fa933") + enc = rsa.Public.Encrypt(msg) + if len(enc) < 1 { + fmt.Printf("encrypt failed: %v", enc) + return + } + dec = rsa.Private.Decrypt(enc) + if !lib.BytesEqual(msg, dec) { + fmt.Printf("decrypt failed: %v", dec) + return + } +} |