@@ -2668,6 +2668,22 @@ function set_public_key(x509_req::X509Request, evp_pkey::EvpPKey)
26682668 end
26692669end
26702670
2671+ function set_version (x509_req:: X509Request , version:: Int )
2672+ if ccall (
2673+ (:X509_REQ_set_version , libcrypto),
2674+ Cint,
2675+ (X509Request, Cint),
2676+ x509_req,
2677+ version) != 1
2678+ throw (OpenSSLError ())
2679+ end
2680+ end
2681+
2682+ function get_version (x509_req:: X509Request ):: Int
2683+ version = ccall ((:X509_REQ_get_version , libcrypto), Clong, (X509Request,), x509_req)
2684+ return Int (version)
2685+ end
2686+
26712687function get_extensions (x509_req:: X509Request )
26722688 sk = ccall (
26732689 (:X509_REQ_get_extensions , libcrypto),
@@ -2688,6 +2704,8 @@ function Base.getproperty(x509_req::X509Request, name::Symbol)
26882704 return get_public_key (x509_req)
26892705 elseif name === :extensions
26902706 return get_extensions (x509_req)
2707+ elseif name === :version
2708+ return get_version (x509_req)
26912709 else
26922710 # fallback to getfield
26932711 return getfield (x509_req, name)
@@ -2699,6 +2717,8 @@ function Base.setproperty!(x509_req::X509Request, name::Symbol, value)
26992717 set_subject_name (x509_req, value)
27002718 elseif name === :public_key
27012719 set_public_key (x509_req, value)
2720+ elseif name === :version
2721+ set_version (x509_req, value)
27022722 else
27032723 # fallback to setfield
27042724 setfield! (x509_req, name, value)
0 commit comments