Use const with some read-only buffers in opencrypto APIs.
- Mark the source buffer for a copyback operation as const in the kernel API. - Use const with input-only buffers in crypto ioctl structures used with /dev/crypto. MFC after: 1 month Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D10517
This commit is contained in:
parent
34238cb7b3
commit
7dd10fded0
@ -79,7 +79,7 @@ cuio_copydata(struct uio* uio, int off, int len, caddr_t cp)
|
||||
}
|
||||
|
||||
void
|
||||
cuio_copyback(struct uio* uio, int off, int len, caddr_t cp)
|
||||
cuio_copyback(struct uio* uio, int off, int len, c_caddr_t cp)
|
||||
{
|
||||
struct iovec *iov = uio->uio_iov;
|
||||
int iol = uio->uio_iovcnt;
|
||||
@ -155,7 +155,7 @@ cuio_apply(struct uio *uio, int off, int len, int (*f)(void *, void *, u_int),
|
||||
}
|
||||
|
||||
void
|
||||
crypto_copyback(int flags, caddr_t buf, int off, int size, caddr_t in)
|
||||
crypto_copyback(int flags, caddr_t buf, int off, int size, c_caddr_t in)
|
||||
{
|
||||
|
||||
if ((flags & CRYPTO_F_IMBUF) != 0)
|
||||
|
@ -211,9 +211,9 @@ struct session_op {
|
||||
u_int32_t mac; /* ie. CRYPTO_MD5_HMAC */
|
||||
|
||||
u_int32_t keylen; /* cipher key */
|
||||
caddr_t key;
|
||||
c_caddr_t key;
|
||||
int mackeylen; /* mac key */
|
||||
caddr_t mackey;
|
||||
c_caddr_t mackey;
|
||||
|
||||
u_int32_t ses; /* returns: session # */
|
||||
};
|
||||
@ -223,9 +223,9 @@ struct session2_op {
|
||||
u_int32_t mac; /* ie. CRYPTO_MD5_HMAC */
|
||||
|
||||
u_int32_t keylen; /* cipher key */
|
||||
caddr_t key;
|
||||
c_caddr_t key;
|
||||
int mackeylen; /* mac key */
|
||||
caddr_t mackey;
|
||||
c_caddr_t mackey;
|
||||
|
||||
u_int32_t ses; /* returns: session # */
|
||||
int crid; /* driver id + flags (rw) */
|
||||
@ -240,9 +240,10 @@ struct crypt_op {
|
||||
u_int16_t flags;
|
||||
#define COP_F_BATCH 0x0008 /* Batch op if possible */
|
||||
u_int len;
|
||||
caddr_t src, dst; /* become iov[] inside kernel */
|
||||
c_caddr_t src; /* become iov[] inside kernel */
|
||||
caddr_t dst;
|
||||
caddr_t mac; /* must be big enough for chosen MAC */
|
||||
caddr_t iv;
|
||||
c_caddr_t iv;
|
||||
};
|
||||
|
||||
/* op and flags the same as crypt_op */
|
||||
@ -253,10 +254,11 @@ struct crypt_aead {
|
||||
u_int len;
|
||||
u_int aadlen;
|
||||
u_int ivlen;
|
||||
caddr_t src, dst; /* become iov[] inside kernel */
|
||||
caddr_t aad; /* additional authenticated data */
|
||||
c_caddr_t src; /* become iov[] inside kernel */
|
||||
caddr_t dst;
|
||||
c_caddr_t aad; /* additional authenticated data */
|
||||
caddr_t tag; /* must fit for chosen TAG length */
|
||||
caddr_t iv;
|
||||
c_caddr_t iv;
|
||||
};
|
||||
|
||||
/*
|
||||
@ -503,7 +505,7 @@ extern int crypto_devallowsoft; /* only use hardware crypto */
|
||||
*/
|
||||
struct uio;
|
||||
extern void cuio_copydata(struct uio* uio, int off, int len, caddr_t cp);
|
||||
extern void cuio_copyback(struct uio* uio, int off, int len, caddr_t cp);
|
||||
extern void cuio_copyback(struct uio* uio, int off, int len, c_caddr_t cp);
|
||||
extern int cuio_getptr(struct uio *uio, int loc, int *off);
|
||||
extern int cuio_apply(struct uio *uio, int off, int len,
|
||||
int (*f)(void *, void *, u_int), void *arg);
|
||||
@ -514,7 +516,7 @@ extern int crypto_mbuftoiov(struct mbuf *mbuf, struct iovec **iovptr,
|
||||
int *cnt, int *allocated);
|
||||
|
||||
extern void crypto_copyback(int flags, caddr_t buf, int off, int size,
|
||||
caddr_t in);
|
||||
c_caddr_t in);
|
||||
extern void crypto_copydata(int flags, caddr_t buf, int off, int size,
|
||||
caddr_t out);
|
||||
extern int crypto_apply(int flags, caddr_t buf, int off, int len,
|
||||
|
Loading…
Reference in New Issue
Block a user