summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsiddharth ravikumar <s@ricketyspace.net>2024-10-14 19:16:11 -0400
committersiddharth ravikumar <s@ricketyspace.net>2024-10-14 19:16:11 -0400
commit32803d4577151e18252c7e2102738b544e99fcbc (patch)
tree5380965064b597ca72cbcc53d2689a27db1325ae
parent0bede4cd60eafb508598ba2f6098f1792623f984 (diff)
lib: update `RSAGenKey`
Add `size` argument.
-rw-r--r--Makefile2
-rw-r--r--challenge/c39.go2
-rw-r--r--challenge/c40.go2
-rw-r--r--challenge/c41.go2
-rw-r--r--cryptopals.go2
-rw-r--r--lib/rsa.go7
-rw-r--r--lib/rsa_test.go4
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