1<?php 2/** 3 * Copyright 2017 Facebook, Inc. 4 * 5 * You are hereby granted a non-exclusive, worldwide, royalty-free license to 6 * use, copy, modify, and distribute this software in source code or binary 7 * form for use in connection with the web services and APIs provided by 8 * Facebook. 9 * 10 * As with any software that integrates with the Facebook platform, your use 11 * of this software is subject to the Facebook Developer Principles and 12 * Policies [http://developers.facebook.com/policy/]. This copyright notice 13 * shall be included in all copies or substantial portions of the software. 14 * 15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 18 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 20 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 21 * DEALINGS IN THE SOFTWARE. 22 * 23 */ 24namespace Facebook\PseudoRandomString; 25 26trait PseudoRandomStringGeneratorTrait 27{ 28 /** 29 * Validates the length argument of a random string. 30 * 31 * @param int $length The length to validate. 32 * 33 * @throws \InvalidArgumentException 34 */ 35 public function validateLength($length) 36 { 37 if (!is_int($length)) { 38 throw new \InvalidArgumentException('getPseudoRandomString() expects an integer for the string length'); 39 } 40 41 if ($length < 1) { 42 throw new \InvalidArgumentException('getPseudoRandomString() expects a length greater than 1'); 43 } 44 } 45 46 /** 47 * Converts binary data to hexadecimal of arbitrary length. 48 * 49 * @param string $binaryData The binary data to convert to hex. 50 * @param int $length The length of the string to return. 51 * 52 * @return string 53 */ 54 public function binToHex($binaryData, $length) 55 { 56 return \substr(\bin2hex($binaryData), 0, $length); 57 } 58} 59