예제 #1
0
파일: xattrs.c 프로젝트: Udo/lua-openssl
static int openssl_xattr_object(lua_State*L) {
  X509_ATTRIBUTE* attr = CHECK_OBJECT(1,X509_ATTRIBUTE, "openssl.x509_attribute");
  int attrtype = luaL_checkint(L, 2);
  if(lua_isnone(L,3)){
    ASN1_OBJECT* obj = X509_ATTRIBUTE_get0_object(attr);
    PUSH_OBJECT(OBJ_nid2obj(obj->nid),"openssl.asn1_object");
    return 1;
  }else
  {
    ASN1_OBJECT* obj = CHECK_OBJECT(2,ASN1_OBJECT,"openssl.asn1_object");
    int ret = X509_ATTRIBUTE_set1_object(attr,obj);
    return openssl_pushresult(L, ret);
  }
}
예제 #2
0
static int openssl_xattr_object(lua_State*L)
{
  X509_ATTRIBUTE* attr = CHECK_OBJECT(1, X509_ATTRIBUTE, "openssl.x509_attribute");
  if (lua_isnone(L, 2))
  {
    ASN1_OBJECT* obj = X509_ATTRIBUTE_get0_object(attr);
    openssl_push_asn1object(L, obj);
    return 1;
  }
  else
  {
    int nid = openssl_get_nid(L, 2);
    ASN1_OBJECT* obj;
    int ret;
    luaL_argcheck(L, nid != NID_undef, 2, "invalid asn1_object identity");
    obj = OBJ_nid2obj(nid);
    ret = X509_ATTRIBUTE_set1_object(attr, obj);
    return openssl_pushresult(L, ret);
  }
}