Fix typo in OCSP nonce extension.
[openssl.git] / crypto / asn1 / a_enum.c
index 34b1a38c495d623b9c5d94f5a85bddb13b6e02fe..8a315fa37144c46423c0fc471d3a759b4de9cafa 100644 (file)
  * for comments on encoding see a_int.c
  */
 
-ASN1_ENUMERATED *ASN1_ENUMERATED_new(void)
-{ return M_ASN1_ENUMERATED_new(); }
-
-void ASN1_ENUMERATED_free(ASN1_ENUMERATED *x)
-{ M_ASN1_ENUMERATED_free(x); }
-
-
-int i2d_ASN1_ENUMERATED(ASN1_ENUMERATED *a, unsigned char **pp)
-{
-       int len, ret;
-       len = i2c_ASN1_INTEGER(a, NULL);        
-       ret=ASN1_object_size(0,len,V_ASN1_ENUMERATED);
-       if(pp) {
-               ASN1_put_object(pp,0,ret,V_ASN1_ENUMERATED,V_ASN1_UNIVERSAL);
-               i2c_ASN1_INTEGER(a, pp);        
-       }
-       return ret;
-}
-
-ASN1_ENUMERATED *d2i_ASN1_ENUMERATED(ASN1_ENUMERATED **a, unsigned char **pp,
-            long length)
-{
-       unsigned char *p;
-       long len;
-       int i;
-       int inf,tag,xclass;
-       ASN1_ENUMERATED *ret;
-
-       p= *pp;
-       inf=ASN1_get_object(&p,&len,&tag,&xclass,length);
-       if (inf & 0x80)
-               {
-               i=ASN1_R_BAD_OBJECT_HEADER;
-               goto err;
-               }
-
-       if (tag != V_ASN1_ENUMERATED)
-               {
-               i=ASN1_R_EXPECTING_AN_ENUMERATED;
-               goto err;
-               }
-       ret = c2i_ASN1_INTEGER(a, &p, len);
-       if(ret) {
-               ret->type = (V_ASN1_NEG & ret->type) | V_ASN1_ENUMERATED;
-               *pp = p;
-       }
-       return ret;
-err:
-       ASN1err(ASN1_F_D2I_ASN1_ENUMERATED,i);
-       return(NULL);
-
-}
-
 int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v)
        {
        int i,j,k;
@@ -167,7 +114,7 @@ long ASN1_ENUMERATED_get(ASN1_ENUMERATED *a)
        if (i == V_ASN1_NEG_ENUMERATED)
                neg=1;
        else if (i != V_ASN1_ENUMERATED)
-               return(0);
+               return -1;
        
        if (a->length > sizeof(long))
                {
@@ -175,7 +122,7 @@ long ASN1_ENUMERATED_get(ASN1_ENUMERATED *a)
                return(0xffffffffL);
                }
        if (a->data == NULL)
-               return(0);
+               return 0;
 
        for (i=0; i<a->length; i++)
                {
@@ -218,6 +165,6 @@ BIGNUM *ASN1_ENUMERATED_to_BN(ASN1_ENUMERATED *ai, BIGNUM *bn)
 
        if ((ret=BN_bin2bn(ai->data,ai->length,bn)) == NULL)
                ASN1err(ASN1_F_ASN1_ENUMERATED_TO_BN,ASN1_R_BN_LIB);
-       if(ai->type == V_ASN1_NEG_ENUMERATED) bn->neg = 1;
+       else if(ai->type == V_ASN1_NEG_ENUMERATED) ret->neg = 1;
        return(ret);
        }