#include <stdint.h>
#include <stdio.h>

#include <openssl/dsa.h>


/* kData is a SEQUENCE of four INTEGERs. It is not actually a reasonable DSA
 * public key, but close enough to parse successfully. */
static const uint8_t kData[] = {
    0x30, 0x0c, 0x02, 0x01, 0x01, 0x02, 0x01,
    0x02, 0x02, 0x01, 0x03, 0x02, 0x01, 0x04,
};

int main() {
  DSA *dsa = DSA_new();
  printf("refcount = %d\n", dsa->references);
  DSA_free(dsa);

  const uint8_t *inp = kData;
  dsa = d2i_DSAPublicKey(NULL, &inp, sizeof(kData));
  printf("refcount = %d\n", dsa->references);
  DSA_free(dsa);

  return 0;
}
