1 /* 2 * Copyright 1998-2016 The OpenSSL Project Authors. All Rights Reserved. 3 * 4 * Licensed under the OpenSSL license (the "License"). You may not use 5 * this file except in compliance with the License. You can obtain a copy 6 * in the file LICENSE in the source distribution or at 7 * https://www.openssl.org/source/license.html 8 */ 9 10 #include <sys/types.h> 11 #include <openssl/des.h> 12 #include <openssl/rand.h> 13 14 int DES_random_key(DES_cblock *ret) 15 { 16 do { 17 if (RAND_bytes((unsigned char *)ret, sizeof(DES_cblock)) != 1) 18 return (0); 19 } while (DES_is_weak_key(ret)); 20 DES_set_odd_parity(ret); 21 return (1); 22 } 23