Пример #1
0
 public static void GenerateKey(ECKeyHandle key)
 {
     Debug.Assert(!key.IsInvalid, $"Accessed an invalid ECKeyHandle! <{nameof(key)}>");
     if (EC_KEY_generate_key(key) == 0)
     {
         throw new OpenSslNativeException();
     }
 }
Пример #2
0
 public static void SetGroup(ECKeyHandle key, ECGroupHandle group)
 {
     Debug.Assert(!key.IsInvalid, $"Accessed an invalid ECKeyHandle! <{nameof(key)}>");
     Debug.Assert(!key.IsInvalid, $"Accessed an invalid ECGroupHandle! <{nameof(group)}>");
     if (EC_KEY_set_group(key, group) == 0)
     {
         throw new OpenSslNativeException();
     }
 }
Пример #3
0
 public static void SetPrivateKey(ECKeyHandle key, BigNumberHandle privateKey)
 {
     Debug.Assert(!key.IsInvalid, $"Accessed an invalid ECKeyHandle! <{nameof(key)}>");
     Debug.Assert(!key.IsInvalid, $"Accessed an invalid BigNumberHandle! <{nameof(privateKey)}>");
     if (EC_KEY_set_private_key(key, privateKey) == 0)
     {
         throw new OpenSslNativeException();
     }
 }
Пример #4
0
        /// <summary>
        /// Allocates a new OpenSSL <c>EC_KEY</c> structure and
        /// returns a handle to it.
        ///
        /// The returned handle is guaranteed to point to be valid,
        /// i.e., point to a valid <c>EC_KEY</c> structure.
        /// </summary>
        /// <returns>
        /// A valid <see cref="ECPointHandle" /> pointing to a freshly allocated
        /// <c>EC_KEY</c> structure.
        /// </returns>
        public static ECKeyHandle Create()
        {
            var key = new ECKeyHandle(EC_KEY_new(), ownsHandle: true);

            if (key.IsInvalid)
            {
                throw new OpenSslNativeException();
            }
            return(key);
        }
Пример #5
0
 public static ECPointHandle GetPublicKey(ECKeyHandle key)
 {
     Debug.Assert(!key.IsInvalid, $"Accessed an invalid ECKeyHandle! <{nameof(key)}>");
     return(EC_KEY_get0_public_key(key));
 }
Пример #6
0
 public static BigNumberHandle GetPrivateKey(ECKeyHandle key)
 {
     Debug.Assert(!key.IsInvalid, $"Accessed an invalid ECKeyHandle! <{nameof(key)}>");
     return(EC_KEY_get0_private_key(key));
 }
Пример #7
0
 private extern static int EC_KEY_generate_key(ECKeyHandle key);
Пример #8
0
 private extern static ECPointHandle EC_KEY_get0_public_key(ECKeyHandle key);
Пример #9
0
 private extern static BigNumberHandle EC_KEY_get0_private_key(ECKeyHandle key);
Пример #10
0
 private extern static int EC_KEY_set_group(ECKeyHandle key, ECGroupHandle group);
Пример #11
0
 private extern static int EC_KEY_set_private_key(ECKeyHandle key, BigNumberHandle prv);