X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=sidebyside;f=patches%2Fsig.diff;h=1626d11292e5d9e01e8238bf8d4dd1f47a00e1cf;hb=b3d68837ff6b385e8f3cc24fb581f28fa8f4cca6;hp=7d00a73bd7ab7f3568213f4d0ee538fc697fcd11;hpb=93ce1337a3d9df70a0e93aef3c1ac16fb047bb0a;p=epoint diff --git a/patches/sig.diff b/patches/sig.diff index 7d00a73..1626d11 100644 --- a/patches/sig.diff +++ b/patches/sig.diff @@ -1,6 +1,6 @@ diff -r 7ec969250bfc src/pkg/crypto/openpgp/packet/signature.go --- a/src/pkg/crypto/openpgp/packet/signature.go Tue Dec 27 09:49:19 2011 -0500 -+++ b/src/pkg/crypto/openpgp/packet/signature.go Sat Dec 31 02:23:37 2011 +0100 ++++ b/src/pkg/crypto/openpgp/packet/signature.go Sat Dec 31 02:32:41 2011 +0100 @@ -164,7 +164,7 @@ const ( creationTimeSubpacket signatureSubpacketType = 2 @@ -32,15 +32,16 @@ diff -r 7ec969250bfc src/pkg/crypto/openpgp/packet/signature.go // Key expiration time, section 5.2.3.6 if !isHashed { return -@@ -443,7 +439,14 @@ +@@ -443,7 +439,15 @@ sig.RSASignature.bytes, err = rsa.SignPKCS1v15(rand.Reader, priv.PrivateKey.(*rsa.PrivateKey), sig.Hash, digest) sig.RSASignature.bitLength = uint16(8 * len(sig.RSASignature.bytes)) case PubKeyAlgoDSA: - r, s, err := dsa.Sign(rand.Reader, priv.PrivateKey.(*dsa.PrivateKey), digest) + dsaPrivateKey := priv.PrivateKey.(*dsa.PrivateKey) -+ // hash truncation according to FIPS 186-3 section 4.6 ++ // Hash truncation according to FIPS 186-3 section 4.6 ++ // Assuming Q.BitLen() is a multiple of 8 + n := len(digest) -+ k := (dsaPrivateKey.Q.BitLen() + 7) / 8 ++ k := dsaPrivateKey.Q.BitLen() / 8 + if n > k { + n = k + } @@ -48,7 +49,7 @@ diff -r 7ec969250bfc src/pkg/crypto/openpgp/packet/signature.go if err == nil { sig.DSASigR.bytes = r.Bytes() sig.DSASigR.bitLength = uint16(8 * len(sig.DSASigR.bytes)) -@@ -556,5 +559,59 @@ +@@ -556,5 +560,59 @@ subpackets = append(subpackets, outputSubpacket{true, issuerSubpacket, false, keyId}) }