From 32803d4577151e18252c7e2102738b544e99fcbc Mon Sep 17 00:00:00 2001 From: siddharth ravikumar Date: Mon, 14 Oct 2024 19:16:11 -0400 Subject: lib: update `RSAGenKey` Add `size` argument. --- Makefile | 2 +- challenge/c39.go | 2 +- challenge/c40.go | 2 +- challenge/c41.go | 2 +- cryptopals.go | 2 ++ lib/rsa.go | 7 ++++--- lib/rsa_test.go | 4 ++-- 7 files changed, 12 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index 1605733..f95095c 100644 --- a/Makefile +++ b/Makefile @@ -18,7 +18,7 @@ vet: .PHONY: vet test: - go test ${ARGS} ${MOD}/lib + go test ${ARGS} ${MOD}/lib ${RUN_ARGS} .PHONY: test clean: diff --git a/challenge/c39.go b/challenge/c39.go index 6261c13..fbdb6f9 100644 --- a/challenge/c39.go +++ b/challenge/c39.go @@ -10,7 +10,7 @@ import ( ) func C39() { - rsa, err := lib.RSAGenKey() + rsa, err := lib.RSAGenKey(2048) if err != nil { fmt.Printf("gen key failed: %v", err) return diff --git a/challenge/c40.go b/challenge/c40.go index ec16059..c12b74c 100644 --- a/challenge/c40.go +++ b/challenge/c40.go @@ -16,7 +16,7 @@ func C40() { // Generate 3 rsa key pairs and capture the their public keys. var rsaPubs []*lib.RSAPub for i := 0; i < 3; i++ { - rsa, err := lib.RSAGenKey() + rsa, err := lib.RSAGenKey(2048) if err != nil { fmt.Printf("gen key failed: %v", err) return diff --git a/challenge/c41.go b/challenge/c41.go index 4ef983d..532f62b 100644 --- a/challenge/c41.go +++ b/challenge/c41.go @@ -12,7 +12,7 @@ import ( func C41() { // Generate RSA key pair and setup paraphernalia. - kpair, err := lib.RSAGenKey() + kpair, err := lib.RSAGenKey(2048) if err != nil { fmt.Printf("rsa gen key: %v\n", err) return diff --git a/cryptopals.go b/cryptopals.go index 5d02e56..a22c9fc 100644 --- a/cryptopals.go +++ b/cryptopals.go @@ -102,5 +102,7 @@ func main() { challenge.C40() case 41: challenge.C41() + case 42: + challenge.C42() } } diff --git a/lib/rsa.go b/lib/rsa.go index 772b898..9353824 100644 --- a/lib/rsa.go +++ b/lib/rsa.go @@ -68,7 +68,8 @@ func InvMod(a, n *big.Int) (*big.Int, error) { return t0, nil } -func RSAGenKey() (*RSAPair, error) { +// RSAGenKey generates a rsa key pair with N equal to size bits. +func RSAGenKey(size int) (*RSAPair, error) { // Initialize. e := big.NewInt(3) d := big.NewInt(0) @@ -77,13 +78,13 @@ func RSAGenKey() (*RSAPair, error) { // Compute n and d. for { // Generate prime p. - p, err := rand.Prime(rand.Reader, 1024) + p, err := rand.Prime(rand.Reader, size/2) if err != nil { return nil, CPError{"unable to generate p"} } // Generate prime q. - q, err := rand.Prime(rand.Reader, 1024) + q, err := rand.Prime(rand.Reader, size/2) if err != nil { return nil, CPError{"unable to generate q"} } diff --git a/lib/rsa_test.go b/lib/rsa_test.go index d26ee2c..810d7cc 100644 --- a/lib/rsa_test.go +++ b/lib/rsa_test.go @@ -59,7 +59,7 @@ func TestInvMod(t *testing.T) { } func TestRSAGenKey(t *testing.T) { - pair, err := RSAGenKey() + pair, err := RSAGenKey(2048) if err != nil { t.Errorf("genkey: %v", err) return @@ -95,7 +95,7 @@ func TestRSAGenKey(t *testing.T) { } func TestRSAEncryptDecrypt(t *testing.T) { - pair, err := RSAGenKey() + pair, err := RSAGenKey(2048) if err != nil { t.Errorf("genkey: %v", err) return -- cgit v1.2.3