///
///
///
///
///
/**
* @description x509 证书请求对象
*
* X509Req 对象属于 crypto 模块,创建:
* ```JavaScript
* var k = new crypto.X509Req();
* ```
*
*/
declare class Class_X509Req extends Class_object {
/**
* @description X509Req 构造函数
*/
constructor();
/**
* @description X509Req 构造函数,根据给定的信息创建一个证书请求
* @param subject 证书的主题可分辨名称
* @param key 证书的公钥
* @param hash 证书摘要算法,缺省为 hash.SHA1
*
*/
constructor(subject: string, key: Class_PKey, hash: number);
/**
* @description X509Req 构造函数,加载一个 DER 格式的证书请求
* @param derReq DER 格式的证书请求
*
*/
constructor(derReq: Class_Buffer);
/**
* @description X509Req 构造函数,加载一个 PEM 格式的证书请求
* @param pemReq DER 格式的证书请求
*
*/
constructor(pemReq: string);
/**
* @description 加载一个 DER 格式的证书请求
* @param derReq DER 格式的证书请求
*
*/
load(derReq: Class_Buffer): void;
/**
* @description 加载一个 PEM 格式的证书请求
* @param pemReq PEM 格式的证书请求
*
*/
load(pemReq: string): void;
/**
* @description 加载一个 PEM/DER 格式的证书请求,可多次调用
* @param filename 证书请求文件名
*
*/
loadFile(filename: string): void;
/**
* @description 返回当前证书请求的 PEM 格式编码
* @return 当前证书请求的 PEM 格式编码
*
*/
exportPem(): string;
/**
* @description 返回当前证书请求的 DER 格式编码
* @return 当前证书请求的 DER 格式编码
*
*/
exportDer(): Class_Buffer;
/**
* @description 签名当前证书请求为正式证书
*
* opts 接收的字段如下:
* ```JavaScript
* {
* ca: false, // 证书为 ca,缺省为 false
* pathlen: -1, // 证书深度,缺省为 -1
* notBefore: "", // 证书生效时间,缺省为当前时间
* notAfter: "", // 证书失效时间,缺省为 notBefore 后一年
* usage: "", // 证书使用范围,接收:digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment, keyAgreement, keyCertSign, cRLSign
* type: "" // 证书 Netscape 证书类型,接收:client, server, email, objsign, reserved, sslCA, emailCA, objCA
* }
* ```
* @param issuer 签名机构的可分辨名称
* @param key 签名机构的私钥
* @param opts 其他可选参数
* @return 返回签名后的正式证书
*
*/
sign(issuer: string, key: Class_PKey, opts?: FIBJS.GeneralObject): Class_X509Cert;
sign(issuer: string, key: Class_PKey, opts?: FIBJS.GeneralObject, callback?: (err: Error | undefined | null, retVal: Class_X509Cert)=>any): void;
/**
* @description 获取证书的主题可分辨名称
*/
readonly subject: string;
/**
* @description 获取证书的公钥
*/
readonly publicKey: Class_PKey;
}