mirror of
https://github.com/miekg/dns.git
synced 2025-10-10 09:21:01 +02:00
more parsing: from private key file - not finished
This commit is contained in:
parent
2b4ac48354
commit
8ed6c8a8f4
4
TODO
4
TODO
@ -1,9 +1,9 @@
|
|||||||
Todo:
|
Todo:
|
||||||
Short term:
|
Short term:
|
||||||
* NSEC3 - need base32 for Nsec3
|
* NSEC3 - need base32 for Nsec3
|
||||||
* Parsing from strings, going with goyacc and own lexer
|
|
||||||
* Testsuite - make it slightly better - put multiple tests inside 1 file
|
|
||||||
* Cleanup the code
|
* Cleanup the code
|
||||||
|
* Tsig testing
|
||||||
|
* Parsing from strings, going with goyacc and own lexer
|
||||||
|
|
||||||
Issues:
|
Issues:
|
||||||
* escaped dots in names \.
|
* escaped dots in names \.
|
||||||
|
@ -210,6 +210,8 @@ func TestTag(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestKeyGenRSA(t *testing.T) {
|
func TestKeyGenRSA(t *testing.T) {
|
||||||
|
|
||||||
|
return // Tijdelijk uit TODO(mg)
|
||||||
key := new(RR_DNSKEY)
|
key := new(RR_DNSKEY)
|
||||||
key.Hdr.Name = "miek.nl."
|
key.Hdr.Name = "miek.nl."
|
||||||
key.Hdr.Rrtype = TypeDNSKEY
|
key.Hdr.Rrtype = TypeDNSKEY
|
||||||
|
37
keygen.go
37
keygen.go
@ -2,8 +2,9 @@ package dns
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
"strconv"
|
|
||||||
"big"
|
"big"
|
||||||
|
"fmt"
|
||||||
|
"strconv"
|
||||||
"crypto/rsa"
|
"crypto/rsa"
|
||||||
"crypto/rand"
|
"crypto/rand"
|
||||||
)
|
)
|
||||||
@ -105,3 +106,37 @@ func (r *RR_DNSKEY) PrivateKeyString(p PrivateKey) (s string) {
|
|||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Read a private key file and create a public key and
|
||||||
|
// return a private key
|
||||||
|
func (r *RR_DNSKEY) PrivateKeySetString(s string) (PrivateKey, os.Error) {
|
||||||
|
p := new(rsa.PrivateKey)
|
||||||
|
var left, right string
|
||||||
|
// Do we care about the order of things?
|
||||||
|
n, err := fmt.Sscanf(s, "%s %s\n", &left, &right)
|
||||||
|
n = n
|
||||||
|
err = err
|
||||||
|
switch left {
|
||||||
|
case "Private-key-format:":
|
||||||
|
if right != "v1.3" {
|
||||||
|
return nil, &Error{Error: "v1.3 supported"}
|
||||||
|
}
|
||||||
|
case "Algorithm:":
|
||||||
|
// simple switch on the string
|
||||||
|
case "Modulus:":
|
||||||
|
modulus, err := packBase64([]byte(right))
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
p.PublicKey.N.SetBytes(modulus)
|
||||||
|
/*
|
||||||
|
case "PublicExponent":
|
||||||
|
publicExponent, err := packBase64([]byte(right))
|
||||||
|
if err != nil {
|
||||||
|
return nil,err
|
||||||
|
}
|
||||||
|
t.PublicKey.E = int(publicExponent)
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
return p, nil
|
||||||
|
}
|
||||||
|
@ -22,3 +22,28 @@ func TestConversion(t *testing.T) {
|
|||||||
println(SecondsToString(60)) // 1m
|
println(SecondsToString(60)) // 1m
|
||||||
println(SecondsToString(59)) // 59
|
println(SecondsToString(59)) // 59
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestPrivateKeyRead(t *testing.T) {
|
||||||
|
a:=`Private-key-format: v1.3
|
||||||
|
Algorithm: 5 (RSASHA1)
|
||||||
|
Modulus: vyVjCzz87g3rg9vDj1NJ1tlFP7lEY2pEQLkWGXAFuZM6Fw/bNmEH/z3ybDfsJqx4QQ6YZXN8V2kbzY7oX+tExf6AMiMIcKYzEGwg5xBYFh33du4G+6kE/VzG906ubp
|
||||||
|
aIEnrZOMTdGqE7OwptAqrqXe4uGXY99ZqNdqutOKQyIzs=
|
||||||
|
PublicExponent: AQAB
|
||||||
|
PrivateExponent: PFg/RoMAjt8SJVSyDoOK4itBs3Z34rLfzVchZPJ6vDWAt1soJ6jGb4xNBmE5SpRUeqVy80RcUvQ59NFTB0UtNo/zAXhC1RfKiFCNRFTyV3k6a9CMLPAU9g
|
||||||
|
4peW91lw87HXnYALTC9bTiTAoMU3vKvNx80F5qfK7qY/N28S1PMeE=
|
||||||
|
Prime1: +vPWyp37iUa7/LbhejOX/KdkhfwECUCdJF0uEePjaBCSf85xceEBzU89JFk9dCojtVqcI8xLKnRKRixg07Rc+Q==
|
||||||
|
Prime2: wv2aVWr13Cq2vRkKiHlqqP9vihGuDN/kWfmXb7slJH3s2i9+yI7vepAlow9SY8lNHOqXibEaAFsP3aj5OAAS0w==
|
||||||
|
Exponent1: sChCenBzhWV1yGvH0zQsWFpYogTKAISuyjvufvhtRTt82uJbmAjObwRUcxOBo+2Aq2kzeZ2Klf6TtLaqMXHGYQ==
|
||||||
|
Exponent2: hXiKeAWrHXWveGj3qMtTkzKl6uCHPxDSgjQy0KxNlFkOE5uHMUmF62NYH/GQ9/UG79A0wm+T2MJ8bcIINaj3OQ==
|
||||||
|
Coefficient: xzZBvs2/IT7+iRQdn9I4slRTg9ryIecx7oKEKYTOEeyL2qq7rfY/FwZGy3EqyA/3lrkfFLx76qOeqAmCTUaU4w==
|
||||||
|
Created: 20101221142359
|
||||||
|
Publish: 20101221142359
|
||||||
|
Activate: 20101221142359`
|
||||||
|
|
||||||
|
a = a
|
||||||
|
b := "Private-key-format: v1.3"
|
||||||
|
|
||||||
|
k := new(RR_DNSKEY)
|
||||||
|
p,_ := k.PrivateKeySetString(b)
|
||||||
|
p = p
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user