示例#1
0
 /**
  * Split a key using a variant of HKDF that used a keyed BLAKE2b hash rather
  * than an HMAC construct
  * 
  * @param \ParagonIE\Halite\Key $master
  * @param string $salt
  * @return array
  */
 public static function splitKeys(Key $master, $salt = null)
 {
     $binary = $master->get();
     return [CryptoUtil::hkdfBlake2b($binary, \Sodium\CRYPTO_SECRETBOX_KEYBYTES, Config::HKDF_SBOX, $salt), CryptoUtil::hkdfBlake2b($binary, \Sodium\CRYPTO_AUTH_KEYBYTES, Config::HKDF_AUTH, $salt)];
 }
示例#2
0
 /**
  * Save a key to a file
  * 
  * @param Key|KeyPair $key
  * @param string $filename
  * @return int|boolean
  */
 public static function save($key, $filename = '')
 {
     if ($key instanceof KeyPair) {
         return self::saveKeyFile($filename, $key->getSecretKey()->get());
     }
     return self::saveKeyFile($filename, $key->get());
 }