Hi Shawn,

your mail prompted me to post an OpenSSL vapi I did a while ago here:

https://bugzilla.gnome.org/show_bug.cgi?id=684446

Please attach yours there too, it seems we tackled different parts
of OpenSSL API so our two vapis are not overlapping and could easily
be merged.

Hopefully creating a bug for keeping track of efforts towards an
official OpenSSL vapi is going to avoid this being buried in mailing
list archives and help getting it some love/polish/advise from other
people who are interested and in-the-know.

thanks ciao
ste


Il 20/09/2012 07:40, Shawn Ferris ha scritto:
> Hi All --
> 
> I started a vapi for openssl. I have no previous experience with
> openssl so I'm not sure I'm anywhere close to a sane implementation,
> even though it seems to be working. I was wondering if someone could
> critique it, suggest improvements, etc. I am getting compile warnings,
> so I definitely think there needs to be tweaks I would appreciate it
> thanks!
> 
> 
> $ cat vapi/openssl.vapi
> namespace OpenSSL {
> 
>   [CCode (cname="ENGINE")]
>   public struct ENGINE{}
> 
>   [CCode (cprefix="EVP_", lower_case_cprefix="EVP_",
> cheader_filename="openssl/evp.h")]
>   namespace EVP {
> 
>     [CCode (cname="EVP_CIPHER", cprefix="EVP_CIPHER_")]
>     public struct CIPHER{
>       public int key_length();
>       public int iv_length();
>     }
> 
>     [CCode (cname="EVP_aes_256_cbc")]
>     public unowned CIPHER? aes_256_cbc();
> 
>     [CCode (cname="EVP_aes_256_ecb")]
>     public unowned CIPHER? aes_256_ecb();
> 
>     [CCode (cname="EVP_BytesToKey")]
>     public int bytes_to_key(
>       CIPHER cipher,
>       MD md,
>       [CCode (array_length = false)] int[] salt,
>       uchar[] key_data,
>       int nrounds,
>       [CCode (array_length = false)] uchar[] key,
>       [CCode (array_length = false)] uchar[] iv
>     );
> 
>     [CCode (cname="EVP_MD")]
>     public struct MD{}
> 
>     [CCode (cname="EVP_sha1")]
>     public unowned MD? sha1();
> 
>     //EVP_CIPHER_CTX_init
>     [CCode (cname="EVP_CIPHER_CTX_init")]
>     public CipherCTX init();
> 
>     [CCode (cname = "EVP_CIPHER_CTX", cprefix="EVP_CIPHER_CTX_")]
>     public struct CipherCTX {
>       public void cleanup();
> 
>       [CCode (cname="EVP_EncryptInit_ex")]
>       public int encrypt_init(
>         CIPHER cipher,
>         ENGINE? engine = null,
>         [CCode (array_length = false)] uchar* key,
>         [CCode (array_length = false)] uchar* iv
>       );
> 
>       [CCode (cname="EVP_EncryptUpdate")]
>       public int encrypt_update(
>         [CCode (array_length = false)] uchar* ciphertext,
>         out int ciphertext_length,
>         [CCode (array_length = false)] uchar* plaintext,
>         int plaintext_length
>       );
> 
>       [CCode (cname="EVP_EncryptFinal_ex")]
>       public int encrypt_final(
>         [CCode (array_length = false)] uchar* ciphertext,
>         out int finished_length
>       );
> 
>       [CCode (cname="EVP_DecryptInit_ex")]
>       public int decrypt_init(
>         CIPHER cipher,
>         ENGINE? engine = null,
>         [CCode (array_length = false)] uchar* key,
>         [CCode (array_length = false)] uchar* iv
>       );
> 
>       [CCode (cname="EVP_DecryptUpdate")]
>       public int decrypt_update(
>         [CCode (array_length = false)] uchar* plaintext,
>         out int plaintext_length,
>         [CCode (array_length = false)] uchar* ciphertext,
>         int ciphertext_length
>       );
> 
>       [CCode (cname="EVP_DecryptFinal_ex")]
>       public int decrypt_final(
>         [CCode (array_length = false)] uchar* plaintext,
>         out int finished_length
>       );
>     }
>   }
> 
>   [CCode (lower_case_cprefix="AES_", cheader_filename="openssl/aes.h")]
>   namespace AES {
>     [CCode (cname = "AES_BLOCK_SIZE")]
>     public const int BLOCK_SIZE;
>   }
> 
> }
> 
> 
> And these are the warnings I'm getting:
> 
> 
> warning: assignment discards âconstâ qualifier from pointer target
> type [enabled by default]
> warning: passing argument 3 of âEVP_BytesToKeyâ from incompatible
> pointer type [enabled by default]
> note: expected âconst unsigned char *â but argument is of type âgint *â
> warning: assignment discards âconstâ qualifier from pointer target
> type [enabled by default]
> 
> As always.. I appreciate any feedback/help..
> 
> Shawn
> _______________________________________________
> vala-list mailing list
> [email protected]
> https://mail.gnome.org/mailman/listinfo/vala-list
> 
_______________________________________________
vala-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to