diff options
| author | forsyth <forsyth@vitanuova.com> | 2009-07-30 19:33:32 +0100 |
|---|---|---|
| committer | forsyth <forsyth@vitanuova.com> | 2009-07-30 19:33:32 +0100 |
| commit | 032c0afdfc6ec3ccf93e50f635a1105d69e0a716 (patch) | |
| tree | a0ebc214dbb4b214d56709185ea4921309263c62 /libkeyring/dsaalg.c | |
| parent | ea1a81b6f8df49918483d91781f2791edf95a523 (diff) | |
20090730-1933
Diffstat (limited to 'libkeyring/dsaalg.c')
| -rw-r--r-- | libkeyring/dsaalg.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/libkeyring/dsaalg.c b/libkeyring/dsaalg.c index 2af1edc9..9845d5f0 100644 --- a/libkeyring/dsaalg.c +++ b/libkeyring/dsaalg.c @@ -25,6 +25,11 @@ dsa_str2sk(char *str, char **strp) dsa->secret = base64tobig(p, &p); if(strp) *strp = p; + if(dsa->pub.p == nil || dsa->pub.q == nil || + dsa->pub.alpha == nil || dsa->pub.key == nil || dsa->secret == nil){ + dsaprivfree(dsa); + return nil; + } return dsa; } @@ -41,6 +46,10 @@ dsa_str2pk(char *str, char **strp) dsa->key = base64tobig(p, &p); if(strp) *strp = p; + if(dsa->p == nil || dsa->q == nil || dsa->alpha == nil || dsa->key == nil){ + dsapubfree(dsa); + return nil; + } return dsa; } @@ -55,6 +64,10 @@ dsa_str2sig(char *str, char **strp) dsa->s = base64tobig(p, &p); if(strp) *strp = p; + if(dsa->r == nil || dsa->s == nil){ + dsasigfree(dsa); + return nil; + } return dsa; } |
