@@ -102,15 +102,17 @@ static std::vector<unsigned char>* SWIG_JavaArrayToVectorUnsignedChar(JNIEnv *je
102102%{ $1 = SWIG_JavaArrayToVectorUnsignedChar (jenv, $input); %}
103103%typemap(out, fragment=" SWIG_VectorUnsignedCharToJavaArray" ) std::vector<unsigned char >, digidoc::X509Cert
104104%{ $result = SWIG_VectorUnsignedCharToJavaArray (jenv, $1 ); %}
105- %typemap(jtype) std::vector<unsigned char >, digidoc::X509Cert " byte[]"
105+ %typemap(out, fragment=" SWIG_VectorUnsignedCharToJavaArray" ) digidoc::X509Cert *
106+ %{ $result = SWIG_VectorUnsignedCharToJavaArray (jenv, *$1 ); %}
107+ %typemap(jtype) std::vector<unsigned char >, digidoc::X509Cert, digidoc::X509Cert * " byte[]"
106108%typemap(jstype) std::vector<unsigned char > " byte[]"
107- %typemap(jstype) digidoc::X509Cert " java.security.cert.X509Certificate"
108- %typemap(jni) std::vector<unsigned char >, digidoc::X509Cert " jbyteArray"
109+ %typemap(jstype) digidoc::X509Cert, digidoc::X509Cert* " java.security.cert.X509Certificate"
110+ %typemap(jni) std::vector<unsigned char >, digidoc::X509Cert, digidoc::X509Cert * " jbyteArray"
109111%typemap(javain) std::vector<unsigned char >, digidoc::X509Cert " $javainput"
110112%typemap(javaout) std::vector<unsigned char > {
111113 return $jnicall;
112114 }
113- %typemap(javaout, throws=" java.security.cert.CertificateException, java.io.IOException" ) digidoc::X509Cert {
115+ %typemap(javaout, throws=" java.security.cert.CertificateException, java.io.IOException" ) digidoc::X509Cert, digidoc::X509Cert * {
114116 byte[] der = $jnicall;
115117 java.security .cert .CertificateFactory cf = java.security .cert .CertificateFactory .getInstance (" X509" );
116118 try (java.io .ByteArrayInputStream is = new java.io .ByteArrayInputStream (der)) {
@@ -120,7 +122,7 @@ static std::vector<unsigned char>* SWIG_JavaArrayToVectorUnsignedChar(JNIEnv *je
120122
121123#elif defined(SWIGCSHARP)
122124%typemap(cstype) std::vector<unsigned char > " byte[]"
123- %typemap(cstype) digidoc::X509Cert " System.Security.Cryptography.X509Certificates.X509Certificate2"
125+ %typemap(cstype) digidoc::X509Cert, digidoc::X509Cert* " System.Security.Cryptography.X509Certificates.X509Certificate2"
124126%typemap(csin, pre = " global::System.IntPtr cPtr$csinput = digidocPINVOKE.ByteVector_to($csinput, $csinput.Length);
125127 var handleRef$csinput = new global::System.Runtime.InteropServices.HandleRef($csinput, cPtr$csinput);"
126128) std::vector<unsigned char > " handleRef$csinput"
@@ -132,6 +134,14 @@ static std::vector<unsigned char>* SWIG_JavaArrayToVectorUnsignedChar(JNIEnv *je
132134 global::System.IntPtr cPtr = $imcall;$excode
133135 return new System.Security .Cryptography .X509Certificates .X509Certificate2 ($modulePINVOKE.To_ByteArray (cPtr));
134136 }
137+ %typemap(csvarout, excode=SWIGEXCODE2 ) digidoc::X509Cert * %{
138+ get {
139+ global::System.IntPtr cPtr = $imcall;$excode
140+ byte[] der = new byte[$modulePINVOKE.ByteVector_size (cPtr)];
141+ global::System.Runtime .InteropServices .Marshal .Copy ($modulePINVOKE.ByteVector_data (cPtr), der, 0 , der.Length );
142+ $modulePINVOKE.ByteVector_free (cPtr);
143+ return new System.Security .Cryptography .X509Certificates .X509Certificate2 (der);
144+ } %}
135145%typemap(out) std::vector<unsigned char > %{ $result = new std::vector<unsigned char >(std::move ($1 )); %}
136146%typemap(out) digidoc::X509Cert %{ $result = new std::vector<unsigned char >($1 .operator std::vector<unsigned char >()); %}
137147
@@ -154,6 +164,10 @@ static std::vector<unsigned char>* SWIG_JavaArrayToVectorUnsignedChar(JNIEnv *je
154164 std::vector<unsigned char > temp = $1 ;
155165 $result = PyBytes_FromStringAndSize ((const char *)temp.data (), temp.size ());
156166}
167+ %typemap(out) digidoc::X509Cert * {
168+ std::vector<unsigned char > temp = *$1 ;
169+ $result = PyBytes_FromStringAndSize ((const char *)temp.data (), temp.size ());
170+ }
157171#endif
158172%typemap(freearg) std::vector<unsigned char >
159173%{ delete $1 ; %}
@@ -205,6 +219,9 @@ static std::vector<unsigned char>* SWIG_JavaArrayToVectorUnsignedChar(JNIEnv *je
205219%newobject digidoc::Container::open;
206220%newobject digidoc::Container::create;
207221
222+ %immutable digidoc::TSAInfo::cert;
223+ %immutable digidoc::TSAInfo::time;
224+
208225%feature(" director" ) digidoc::ContainerOpenCB;
209226
210227%typemap(javacode) digidoc::Conf %{
@@ -262,6 +279,7 @@ def transfer(self):
262279%template (StringMap) std::map<std::string,std::string>;
263280%template (DataFiles) std::vector<digidoc::DataFile*>;
264281%template (Signatures) std::vector<digidoc::Signature*>;
282+ %template (TSAInfos) std::vector<digidoc::TSAInfo>;
265283
266284%extend digidoc::Container {
267285 static digidoc::Container* open (const std::string &path, digidoc::ContainerOpenCB *cb)
0 commit comments