Loading CHANGES +9 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,15 @@ Changes between 0.9.5a and 0.9.6 [xx XXX 2000] *) Fix various signed/unsigned issues to make a_strex,c compile under VC++. [Oscar Jacobsson <oscar.jacobsson@celocom.com>] *) ASN1 fixes. i2d_ASN1_OBJECT was not returning the correct length if passed a buffer. ASN1_INTEGER_to_BN failed if passed a NULL BN and its argument was negative. [Steve Henson, pointed out by Sven Heiberg <sven@tartu.cyber.ee>] *) Modification to PKCS#7 encoding routines to output definite length encoding. Since currently the whole structures are in memory there's not real point in using indefinite length Loading crypto/asn1/a_int.c +1 −1 Original line number Diff line number Diff line Loading @@ -465,7 +465,7 @@ BIGNUM *ASN1_INTEGER_to_BN(ASN1_INTEGER *ai, BIGNUM *bn) if ((ret=BN_bin2bn(ai->data,ai->length,bn)) == NULL) ASN1err(ASN1_F_ASN1_INTEGER_TO_BN,ASN1_R_BN_LIB); if(ai->type == V_ASN1_NEG_INTEGER) bn->neg = 1; if(ai->type == V_ASN1_NEG_INTEGER) ret->neg = 1; return(ret); } Loading crypto/asn1/a_object.c +4 −3 Original line number Diff line number Diff line Loading @@ -65,11 +65,12 @@ int i2d_ASN1_OBJECT(ASN1_OBJECT *a, unsigned char **pp) { unsigned char *p; int objsize; if ((a == NULL) || (a->data == NULL)) return(0); if (pp == NULL) return(ASN1_object_size(0,a->length,V_ASN1_OBJECT)); objsize = ASN1_object_size(0,a->length,V_ASN1_OBJECT); if (pp == NULL) return objsize; p= *pp; ASN1_put_object(&p,0,a->length,V_ASN1_OBJECT,V_ASN1_UNIVERSAL); Loading @@ -77,7 +78,7 @@ int i2d_ASN1_OBJECT(ASN1_OBJECT *a, unsigned char **pp) p+=a->length; *pp=p; return(a->length); return(objsize); } int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num) Loading crypto/asn1/a_strex.c +5 −5 Original line number Diff line number Diff line Loading @@ -96,7 +96,7 @@ int send_bio_chars(void *arg, const void *buf, int len) int send_fp_chars(void *arg, const void *buf, int len) { if(!arg) return 1; if(fwrite(buf, 1, len, arg) != len) return 0; if(fwrite(buf, 1, len, arg) != (unsigned int)len) return 0; return 1; } Loading @@ -123,7 +123,7 @@ static int do_esc_char(unsigned long c, unsigned char flags, char *do_quotes, ch if(!io_ch(arg, tmphex, 6)) return -1; return 6; } chtmp = c; chtmp = (unsigned char)c; if(chtmp > 0x7f) chflgs = flags & ASN1_STRFLGS_ESC_MSB; else chflgs = char_type[chtmp] & flags; if(chflgs & CHARTYPE_BS_ESC) { Loading Loading @@ -200,12 +200,12 @@ static int do_buf(unsigned char *buf, int buflen, * otherwise each character will be > 0x7f and so the * character will never be escaped on first and last. */ len = do_esc_char(utfbuf[i], flags | orflags, quotes, io_ch, arg); len = do_esc_char(utfbuf[i], (unsigned char)(flags | orflags), quotes, io_ch, arg); if(len < 0) return -1; outlen += len; } } else { len = do_esc_char(c, flags | orflags, quotes, io_ch, arg); len = do_esc_char(c, (unsigned char)(flags | orflags), quotes, io_ch, arg); if(len < 0) return -1; outlen += len; } Loading Loading @@ -304,7 +304,7 @@ static int do_print_ex(char_io *io_ch, void *arg, unsigned long lflags, ASN1_STR unsigned char flags; quotes = 0; /* Keep a copy of escape flags */ flags = lflags & ESC_FLAGS; flags = (unsigned char)(lflags & ESC_FLAGS); type = str->type; Loading Loading
CHANGES +9 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,15 @@ Changes between 0.9.5a and 0.9.6 [xx XXX 2000] *) Fix various signed/unsigned issues to make a_strex,c compile under VC++. [Oscar Jacobsson <oscar.jacobsson@celocom.com>] *) ASN1 fixes. i2d_ASN1_OBJECT was not returning the correct length if passed a buffer. ASN1_INTEGER_to_BN failed if passed a NULL BN and its argument was negative. [Steve Henson, pointed out by Sven Heiberg <sven@tartu.cyber.ee>] *) Modification to PKCS#7 encoding routines to output definite length encoding. Since currently the whole structures are in memory there's not real point in using indefinite length Loading
crypto/asn1/a_int.c +1 −1 Original line number Diff line number Diff line Loading @@ -465,7 +465,7 @@ BIGNUM *ASN1_INTEGER_to_BN(ASN1_INTEGER *ai, BIGNUM *bn) if ((ret=BN_bin2bn(ai->data,ai->length,bn)) == NULL) ASN1err(ASN1_F_ASN1_INTEGER_TO_BN,ASN1_R_BN_LIB); if(ai->type == V_ASN1_NEG_INTEGER) bn->neg = 1; if(ai->type == V_ASN1_NEG_INTEGER) ret->neg = 1; return(ret); } Loading
crypto/asn1/a_object.c +4 −3 Original line number Diff line number Diff line Loading @@ -65,11 +65,12 @@ int i2d_ASN1_OBJECT(ASN1_OBJECT *a, unsigned char **pp) { unsigned char *p; int objsize; if ((a == NULL) || (a->data == NULL)) return(0); if (pp == NULL) return(ASN1_object_size(0,a->length,V_ASN1_OBJECT)); objsize = ASN1_object_size(0,a->length,V_ASN1_OBJECT); if (pp == NULL) return objsize; p= *pp; ASN1_put_object(&p,0,a->length,V_ASN1_OBJECT,V_ASN1_UNIVERSAL); Loading @@ -77,7 +78,7 @@ int i2d_ASN1_OBJECT(ASN1_OBJECT *a, unsigned char **pp) p+=a->length; *pp=p; return(a->length); return(objsize); } int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num) Loading
crypto/asn1/a_strex.c +5 −5 Original line number Diff line number Diff line Loading @@ -96,7 +96,7 @@ int send_bio_chars(void *arg, const void *buf, int len) int send_fp_chars(void *arg, const void *buf, int len) { if(!arg) return 1; if(fwrite(buf, 1, len, arg) != len) return 0; if(fwrite(buf, 1, len, arg) != (unsigned int)len) return 0; return 1; } Loading @@ -123,7 +123,7 @@ static int do_esc_char(unsigned long c, unsigned char flags, char *do_quotes, ch if(!io_ch(arg, tmphex, 6)) return -1; return 6; } chtmp = c; chtmp = (unsigned char)c; if(chtmp > 0x7f) chflgs = flags & ASN1_STRFLGS_ESC_MSB; else chflgs = char_type[chtmp] & flags; if(chflgs & CHARTYPE_BS_ESC) { Loading Loading @@ -200,12 +200,12 @@ static int do_buf(unsigned char *buf, int buflen, * otherwise each character will be > 0x7f and so the * character will never be escaped on first and last. */ len = do_esc_char(utfbuf[i], flags | orflags, quotes, io_ch, arg); len = do_esc_char(utfbuf[i], (unsigned char)(flags | orflags), quotes, io_ch, arg); if(len < 0) return -1; outlen += len; } } else { len = do_esc_char(c, flags | orflags, quotes, io_ch, arg); len = do_esc_char(c, (unsigned char)(flags | orflags), quotes, io_ch, arg); if(len < 0) return -1; outlen += len; } Loading Loading @@ -304,7 +304,7 @@ static int do_print_ex(char_io *io_ch, void *arg, unsigned long lflags, ASN1_STR unsigned char flags; quotes = 0; /* Keep a copy of escape flags */ flags = lflags & ESC_FLAGS; flags = (unsigned char)(lflags & ESC_FLAGS); type = str->type; Loading