sshd, with OCF under the ssl covers, abruptly closes incoming connections with:
cipher_init: EVP_CipherInit: set key failed for aes128-cbc and cryptodev_digest_init: Can't get Dev type messages. AFAIKT, this is architecture independent and OCF crypto driver independent. I found the problem lied in OCF-Linux' CRIOGET handling code. Not being very familiar with linux fs code, I stumbled upon Michal Ludvig's implementation, which seems to work well with a minor adjustment. Thanks to Michal. Kim --- cryptodev-orig.c 2006-02-07 18:43:44.000000000 -0600 +++ cryptodev.c 2006-02-07 18:46:57.000000000 -0600 @@ -544,6 +544,22 @@ } static int +clonefd(struct file *filp) +{ + struct files_struct * files = current->files; + int fd; + + fd = get_unused_fd(); + if (fd >= 0) { + get_file(filp); + FD_SET(fd, files_fdtable(files)->open_fds); + fd_install(fd, filp); + } + + return fd; +} + +static int cryptodev_ioctl( struct inode *inode, struct file *filp, @@ -567,10 +583,7 @@ switch (cmd) { case CRIOGET: dprintk("%s(CRIOGET)\n", __FUNCTION__); - fs = get_fs(); - set_fs(get_ds()); - - fd = open("/dev/crypto", O_RDWR, 0); + fd = clonefd(filp); put_user(fd, (int *) arg); return(fd == -1 ? -errno : 0); - To unsubscribe from this list: send the line "unsubscribe linux-crypto" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html