Path: blob/master/src/applications/files/keyring/PhabricatorKeyring.php
12241 views
<?php12final class PhabricatorKeyring extends Phobject {34private static $hasReadConfiguration;5private static $keyRing = array();67public static function addKey($spec) {8self::$keyRing[$spec['name']] = $spec;9}1011public static function getKey($name, $type) {12self::readConfiguration();1314if (empty(self::$keyRing[$name])) {15throw new Exception(16pht(17'No key "%s" exists in keyring.',18$name));19}2021$spec = self::$keyRing[$name];2223$material = base64_decode($spec['material.base64'], true);24return new PhutilOpaqueEnvelope($material);25}2627public static function getDefaultKeyName($type) {28self::readConfiguration();2930foreach (self::$keyRing as $name => $key) {31if (!empty($key['default'])) {32return $name;33}34}3536return null;37}3839private static function readConfiguration() {40if (self::$hasReadConfiguration) {41return true;42}4344self::$hasReadConfiguration = true;4546foreach (PhabricatorEnv::getEnvConfig('keyring') as $spec) {47self::addKey($spec);48}49}5051}525354