+ case SILC_ASN1_TAG_SHORT_INTEGER:
+ {
+ /* Short Integer */
+ SilcMPInt z;
+ SILC_ASN1_VAD(asn1, opts, SilcUInt32, intval);
+
+ if (rdata_len < 1) {
+ SILC_LOG_DEBUG(("Malformed integer value"));
+ SILC_ASN1_VA_FREE(opts, intval);
+ ret = FALSE;
+ goto fail;
+ }
+
+ silc_stack_push(SILC_ASN1_STACK(stack1, asn1), NULL);
+ silc_mp_sinit(SILC_ASN1_STACK(stack1, asn1), &z);
+ silc_mp_bin2mp((unsigned char *)rdata, rdata_len, &z);
+ *(*intval) = silc_mp_get_ui(&z);
+ silc_mp_uninit(&z);
+ silc_stack_pop(SILC_ASN1_STACK(stack1, asn1));
+ break;
+ }
+