1*789431f2SAndroid Build Coastguard Worker /* 2*789431f2SAndroid Build Coastguard Worker ** 3*789431f2SAndroid Build Coastguard Worker ** Copyright 2017, The Android Open Source Project 4*789431f2SAndroid Build Coastguard Worker ** 5*789431f2SAndroid Build Coastguard Worker ** Licensed under the Apache License, Version 2.0 (the "License"); 6*789431f2SAndroid Build Coastguard Worker ** you may not use this file except in compliance with the License. 7*789431f2SAndroid Build Coastguard Worker ** You may obtain a copy of the License at 8*789431f2SAndroid Build Coastguard Worker ** 9*789431f2SAndroid Build Coastguard Worker ** http://www.apache.org/licenses/LICENSE-2.0 10*789431f2SAndroid Build Coastguard Worker ** 11*789431f2SAndroid Build Coastguard Worker ** Unless required by applicable law or agreed to in writing, software 12*789431f2SAndroid Build Coastguard Worker ** distributed under the License is distributed on an "AS IS" BASIS, 13*789431f2SAndroid Build Coastguard Worker ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*789431f2SAndroid Build Coastguard Worker ** See the License for the specific language governing permissions and 15*789431f2SAndroid Build Coastguard Worker ** limitations under the License. 16*789431f2SAndroid Build Coastguard Worker */ 17*789431f2SAndroid Build Coastguard Worker 18*789431f2SAndroid Build Coastguard Worker #include <keymaster/km_openssl/software_random_source.h> 19*789431f2SAndroid Build Coastguard Worker #include <openssl/rand.h> 20*789431f2SAndroid Build Coastguard Worker 21*789431f2SAndroid Build Coastguard Worker namespace keymaster { 22*789431f2SAndroid Build Coastguard Worker GenerateRandom(uint8_t * buffer,size_t length) const23*789431f2SAndroid Build Coastguard Workerkeymaster_error_t SoftwareRandomSource::GenerateRandom(uint8_t* buffer, size_t length) const { 24*789431f2SAndroid Build Coastguard Worker if (RAND_bytes(buffer, length) != 1) return KM_ERROR_UNKNOWN_ERROR; 25*789431f2SAndroid Build Coastguard Worker return KM_ERROR_OK; 26*789431f2SAndroid Build Coastguard Worker } 27*789431f2SAndroid Build Coastguard Worker 28*789431f2SAndroid Build Coastguard Worker } // namespace keymaster 29