Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

davidiw/OpenSSL.NET

Open more actions menu

Repository files navigation

OpenSSL.NET - README

Description
-----------

A managed OpenSSL wrapper written in C# for the 2.0 .NET Framework that
exposes both the Crypto API and the SSL API.

This a must for .NET developers that need crypto but don't want to use
Microsoft's SSPI.

This wrapper is based on version 0.9.8k of libeay32.dll and ssleay32.dll.

Wrapper Example
---------------

The following is a partial example to show the general pattern of wrapping
onto the C API.

Take DSA and the following C prototypes:


DSA *  DSA_new(void);
void   DSA_free(DSA *dsa);
int    DSA_size(const DSA *dsa);
int    DSA_generate_key(DSA *dsa);
int    DSA_sign(int dummy, const unsigned char *dgst, int len,
                unsigned char *sigret, unsigned int *siglen, DSA *dsa);
int    DSA_verify(int dummy, const unsigned char *dgst, int len,
                const unsigned char *sigbuf, int siglen, DSA *dsa);


Which gets wrapped as something akin to:


public class DSA : IDisposable
{
    // calls DSA_new()
    public DSA();

    // calls DSA_free() as needed
    ~DSA();

    // calls DSA_free() as needed
    public void Dispose();

    // returns DSA_size()
    public int Size { get; }

    // calls DSA_generate_key()
    public void GenerateKeys();

    // calls DSA_sign()
    public byte[] Sign(byte[] msg);

    // returns DSA_verify()
    public bool Verify(byte[] msg, byte[] sig);
}

About

A managed wrapper for OpenSSL

Resources

License

Unknown, Unknown licenses found

Licenses found

Unknown
LICENSE
Unknown
COPYING

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.