/* returns an encoded ASN1 string from QString for a special nid*/ ASN1_STRING *QStringToAsn1(const QString s, int nid) { QByteArray ba = s.toUtf8(); const unsigned char *utf8 = (const unsigned char *)ba.constData(); unsigned long global_mask = ASN1_STRING_get_default_mask(); unsigned long mask = DIRSTRING_TYPE & global_mask; ASN1_STRING *out = NULL; ASN1_STRING_TABLE *tbl; tbl = ASN1_STRING_TABLE_get(nid); if (tbl) { mask = tbl->mask; if (!(tbl->flags & STABLE_NO_MASK)) mask &= global_mask; } ASN1_mbstring_copy(&out, utf8, -1, MBSTRING_UTF8, mask); openssl_error(QString("'%1' (%2)").arg(s).arg(OBJ_nid2ln(nid))); return out; }
QString name = n.taggedValues(); QString final = oid_sect(); final += QString("[ req ]\n" "default_bits = 1024\n" "default_keyfile = privkey.pem\n" "distinguished_name = xca_dn\n" "x509_extensions = xca_extensions\n" "req_extensions = xca_extensions\n" "string_mask = MASK:0x%3\n" "utf8 = yes\n" "prompt = no\n\n" "[ xca_dn ]\n" "%1\n" "[ xca_extensions ]\n" "%2").arg(name).arg(extensions). arg(ASN1_STRING_get_default_mask(), 0, 16); FILE *fp = fopen_write(fname); if (fp == NULL) { fopen_error(fname); return; } QByteArray ba = final.toUtf8(); fwrite_ba(fp, ba, fname); fclose(fp); } bool pki_x509super::visible() const { if (pki_x509name::visible()) return true;