auth/gensec: Use gnutls_error_to_ntstatus() in netsec_do_seal()
authorAndrew Bartlett <abartlet@samba.org>
Fri, 16 Aug 2019 03:45:43 +0000 (15:45 +1200)
committerAndreas Schneider <asn@cryptomilk.org>
Wed, 21 Aug 2019 09:57:31 +0000 (09:57 +0000)
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
auth/gensec/schannel.c

index 18e2ed6cd366c90fef34413d3eb0f01958e22acb..18ed92b703b08bc955d36d573aeb4b828e331b11 100644 (file)
@@ -302,10 +302,8 @@ static NTSTATUS netsec_do_seal(struct schannel_state *state,
                                                   confounder,
                                                   8);
                        if (rc < 0) {
-                               DBG_ERR("ERROR: gnutls_cipher_encrypt: %s\n",
-                                       gnutls_strerror(errno));
                                gnutls_cipher_deinit(cipher_hnd);
-                               return NT_STATUS_INTERNAL_ERROR;
+                               return gnutls_error_to_ntstatus(rc, NT_STATUS_CRYPTO_SYSTEM_INVALID);
                        }
 
                        /*
@@ -317,20 +315,16 @@ static NTSTATUS netsec_do_seal(struct schannel_state *state,
                                                   data,
                                                   length);
                        if (rc < 0) {
-                               DBG_ERR("ERROR: gnutls_cipher_encrypt: %s\n",
-                                       gnutls_strerror(errno));
                                gnutls_cipher_deinit(cipher_hnd);
-                               return NT_STATUS_INTERNAL_ERROR;
+                               return gnutls_error_to_ntstatus(rc, NT_STATUS_CRYPTO_SYSTEM_INVALID);
                        }
                } else {
                        rc = gnutls_cipher_decrypt(cipher_hnd,
                                                   confounder,
                                                   8);
                        if (rc < 0) {
-                               DBG_ERR("ERROR: gnutls_cipher_decrypt: %s\n",
-                                       gnutls_strerror(errno));
                                gnutls_cipher_deinit(cipher_hnd);
-                               return NT_STATUS_INTERNAL_ERROR;
+                               return gnutls_error_to_ntstatus(rc, NT_STATUS_CRYPTO_SYSTEM_INVALID);
                        }
 
                        /*
@@ -342,10 +336,8 @@ static NTSTATUS netsec_do_seal(struct schannel_state *state,
                                                   data,
                                                   length);
                        if (rc < 0) {
-                               DBG_ERR("ERROR: gnutls_cipher_decrypt: %s\n",
-                                       gnutls_strerror(errno));
                                gnutls_cipher_deinit(cipher_hnd);
-                               return NT_STATUS_INTERNAL_ERROR;
+                               return gnutls_error_to_ntstatus(rc, NT_STATUS_CRYPTO_SYSTEM_INVALID);
                        }
                }
                gnutls_cipher_deinit(cipher_hnd);