diff options
author | Miloslav Trmač <mitr@redhat.com> | 2010-12-15 14:24:10 +0100 |
---|---|---|
committer | Miloslav Trmač <mitr@redhat.com> | 2010-12-15 14:24:10 +0100 |
commit | bde3ec012ede47fb16ddc03c0a847df53fc86c30 (patch) | |
tree | 43c71272c1114d0799cb567cef461e8a581222a4 | |
parent | 81de29993fdecd28a749411969e30eb3d536c36a (diff) | |
download | ncrypto-bde3ec012ede47fb16ddc03c0a847df53fc86c30.tar.gz ncrypto-bde3ec012ede47fb16ddc03c0a847df53fc86c30.tar.xz ncrypto-bde3ec012ede47fb16ddc03c0a847df53fc86c30.zip |
This requires _GNU_SOURCE, which in turn requires renaming the "encrypt"
identifier to avoid a conflict with a function from <crypt.h>.
-rw-r--r-- | configure.ac | 1 | ||||
-rw-r--r-- | lib/ncrypto_alg.c | 48 |
2 files changed, 25 insertions, 24 deletions
diff --git a/configure.ac b/configure.ac index ed53177..47bd1e2 100644 --- a/configure.ac +++ b/configure.ac @@ -42,6 +42,7 @@ AM_PROG_CC_C_O # This interface seems to be undocumented, but bison uses it ;-) AM_MISSING_PROG([AUTOM4TE], [autom4te]) +AC_USE_SYSTEM_EXTENSIONS LT_INIT([disable-static]) # Checks for libraries. diff --git a/lib/ncrypto_alg.c b/lib/ncrypto_alg.c index bc72383..1277575 100644 --- a/lib/ncrypto_alg.c +++ b/lib/ncrypto_alg.c @@ -117,7 +117,7 @@ ncr_digest_alloc (struct ncr_digest_session **sess, CK_MECHANISM_TYPE mech) if (res != CKR_OK) goto err_s; - top_fd = socket (AF_ALG, SOCK_SEQPACKET, 0); + top_fd = socket (AF_ALG, SOCK_SEQPACKET | SOCK_CLOEXEC, 0); if (top_fd == -1) { res = ckr_errno (); @@ -129,7 +129,7 @@ ncr_digest_alloc (struct ncr_digest_session **sess, CK_MECHANISM_TYPE mech) goto err_top_fd; } - s->fd = accept (top_fd, NULL, 0); + s->fd = accept4 (top_fd, NULL, 0, SOCK_CLOEXEC); if (s->fd == -1) { res = ckr_errno (); @@ -174,7 +174,7 @@ ncr_digest_clone (struct ncr_digest_session **clone, if (c == NULL) return CKR_HOST_MEMORY; - c->fd = accept (sess->fd, NULL, 0); + c->fd = accept4 (sess->fd, NULL, 0, SOCK_CLOEXEC); if (c->fd == -1) { free (c); @@ -326,12 +326,12 @@ ncr_digest_standalone (CK_MECHANISM_TYPE mech, void *dest, g_return_val_if_fail (data != NULL, CKR_ARGUMENTS_BAD); g_return_val_if_fail (data_size <= SSIZE_MAX, CKR_ARGUMENTS_BAD); - top_fd = socket (AF_ALG, SOCK_SEQPACKET, 0); + top_fd = socket (AF_ALG, SOCK_SEQPACKET | SOCK_CLOEXEC, 0); if (top_fd == -1) return ckr_errno (); if (bind (top_fd, (struct sockaddr *)sa, sizeof (*sa)) != 0) goto err_top_fd; - fd = accept (top_fd, NULL, 0); + fd = accept4 (top_fd, NULL, 0, SOCK_CLOEXEC); if (fd == -1) goto err_top_fd; (void)close (top_fd); @@ -432,7 +432,7 @@ ncr_symm_signature_alloc (struct ncr_symm_signature_session **sess, if (res != CKR_OK) goto err_s; - s->parent_fd = socket (AF_ALG, SOCK_SEQPACKET, 0); + s->parent_fd = socket (AF_ALG, SOCK_SEQPACKET | SOCK_CLOEXEC, 0); if (s->parent_fd == -1) { res = ckr_errno (); @@ -494,7 +494,7 @@ ncr_symm_signature_clone (struct ncr_symm_signature_session **clone, Therefore, create an entirely new parent_fd for _both_ clones. The "old" parent_fd will be implicitly referred to by child_fd of both clones, but any session reinitialization will use the new parent_fd values. */ - new_sess_parent_fd = socket (AF_ALG, SOCK_SEQPACKET, 0); + new_sess_parent_fd = socket (AF_ALG, SOCK_SEQPACKET | SOCK_CLOEXEC, 0); if (new_sess_parent_fd == -1) { res = ckr_errno (); @@ -507,7 +507,7 @@ ncr_symm_signature_clone (struct ncr_symm_signature_session **clone, goto err_new_sess_parent_fd; } - c->parent_fd = socket (AF_ALG, SOCK_SEQPACKET, 0); + c->parent_fd = socket (AF_ALG, SOCK_SEQPACKET | SOCK_CLOEXEC, 0); if (c->parent_fd == -1) { res = ckr_errno (); @@ -519,7 +519,7 @@ ncr_symm_signature_clone (struct ncr_symm_signature_session **clone, goto err_c_parent_fd; } - c->child_fd = accept (sess->child_fd, NULL, 0); + c->child_fd = accept4 (sess->child_fd, NULL, 0, SOCK_CLOEXEC); if (c->child_fd == -1) { res = ckr_errno (); @@ -564,7 +564,7 @@ symm_signature_init (struct ncr_symm_signature_session *sess, bool sign, key->size) != 0) return ckr_errno (); - sess->child_fd = accept (sess->parent_fd, NULL, 0); + sess->child_fd = accept4 (sess->parent_fd, NULL, 0, SOCK_CLOEXEC); if (sess->child_fd == -1) return ckr_errno (); @@ -861,7 +861,7 @@ ncr_symm_cipher_alloc (struct ncr_symm_cipher_session **sess, if (s == NULL) return CKR_HOST_MEMORY; - s->parent_fd = socket (AF_ALG, SOCK_SEQPACKET, 0); + s->parent_fd = socket (AF_ALG, SOCK_SEQPACKET | SOCK_CLOEXEC, 0); if (s->parent_fd == -1) { res = ckr_errno (); @@ -943,7 +943,7 @@ ncr_symm_cipher_change_iv (struct ncr_symm_cipher_session *sess, const void *iv, } static CK_RV -symm_cipher_init (struct ncr_symm_cipher_session *sess, bool encrypt, +symm_cipher_init (struct ncr_symm_cipher_session *sess, bool encrypting, struct ncr_symm_key *key, const void *param, size_t param_size) { @@ -987,7 +987,7 @@ symm_cipher_init (struct ncr_symm_cipher_session *sess, bool encrypt, key->size) != 0) return ckr_errno (); - sess->child_fd = accept (sess->parent_fd, NULL, 0); + sess->child_fd = accept4 (sess->parent_fd, NULL, 0, SOCK_CLOEXEC); if (sess->child_fd == -1) return ckr_errno (); @@ -1019,13 +1019,13 @@ symm_cipher_init (struct ncr_symm_cipher_session *sess, bool encrypt, return res; } - sess->encrypting = encrypt; + sess->encrypting = encrypting; sess->state = NSCS_INITIALIZED; return CKR_OK; } static CK_RV -symm_cipher_update (struct ncr_symm_cipher_session *sess, bool encrypt, +symm_cipher_update (struct ncr_symm_cipher_session *sess, bool encrypting, void *dest, size_t *dest_size_ptr, const void *src, size_t src_size) { @@ -1042,7 +1042,7 @@ symm_cipher_update (struct ncr_symm_cipher_session *sess, bool encrypt, g_return_val_if_fail (sess->state == NSCS_INITIALIZED || sess->state == NSCS_UPDATED, CKR_OPERATION_NOT_INITIALIZED); - g_return_val_if_fail (sess->encrypting == encrypt, + g_return_val_if_fail (sess->encrypting == encrypting, CKR_OPERATION_NOT_INITIALIZED); if (dest == NULL) @@ -1101,7 +1101,7 @@ symm_cipher_update (struct ncr_symm_cipher_session *sess, bool encrypt, /* EVP_CipherUpdate + EVP_CipherFinal_ex */ static CK_RV do_symm_cipher_update_final (struct ncr_symm_cipher_session *sess, - bool encrypt, void *dest, size_t *dest_size_ptr, + bool encrypting, void *dest, size_t *dest_size_ptr, const void *src, size_t src_size) { size_t done; @@ -1115,7 +1115,7 @@ do_symm_cipher_update_final (struct ncr_symm_cipher_session *sess, /* The caller has verified session and its state. */ g_return_val_if_fail (dest_size_ptr != NULL, CKR_ARGUMENTS_BAD); g_return_val_if_fail (src_size <= SSIZE_MAX, CKR_ARGUMENTS_BAD); - g_return_val_if_fail (sess->encrypting == encrypt, + g_return_val_if_fail (sess->encrypting == encrypting, CKR_OPERATION_NOT_INITIALIZED); if (dest == NULL) @@ -1182,7 +1182,7 @@ do_symm_cipher_update_final (struct ncr_symm_cipher_session *sess, } static CK_RV -symm_cipher_final (struct ncr_symm_cipher_session *sess, bool encrypt, +symm_cipher_final (struct ncr_symm_cipher_session *sess, bool encrypting, void *dest, size_t *dest_size_ptr, const void *src, size_t src_size) { @@ -1191,20 +1191,20 @@ symm_cipher_final (struct ncr_symm_cipher_session *sess, bool encrypt, || sess->state == NSCS_UPDATED, CKR_OPERATION_NOT_INITIALIZED); - return do_symm_cipher_update_final (sess, encrypt, dest, dest_size_ptr, src, - src_size); + return do_symm_cipher_update_final (sess, encrypting, dest, dest_size_ptr, + src, src_size); } static CK_RV -symm_cipher (struct ncr_symm_cipher_session *sess, bool encrypt, void *dest, +symm_cipher (struct ncr_symm_cipher_session *sess, bool encrypting, void *dest, size_t *dest_size_ptr, const void *src, size_t src_size) { g_return_val_if_fail (sess != NULL, CKR_SESSION_HANDLE_INVALID); g_return_val_if_fail (sess->state == NSCS_INITIALIZED, CKR_OPERATION_NOT_INITIALIZED); - return do_symm_cipher_update_final (sess, encrypt, dest, dest_size_ptr, src, - src_size); + return do_symm_cipher_update_final (sess, encrypting, dest, dest_size_ptr, + src, src_size); } CK_RV |