public static function parseSubKeyLine($string) { $tokens = explode(':', $string); $subKey = new SubKey(); $subKey->setId($tokens[4]); $subKey->setLength($tokens[2]); $subKey->setAlgorithm($tokens[3]); $subKey->setCreationDate(self::_parseDate($tokens[5])); $subKey->setExpirationDate(self::_parseDate($tokens[6])); if (strpos($tokens[1], 'r') !== false) { $subKey->setRevoked(true); } if (strpos($tokens[11], 's') !== false) { $subKey->setCanSign(true); } if (strpos($tokens[11], 'e') !== false) { $subKey->setCanEncrypt(true); } if (strpos($tokens[11], 'c') !== false) { //certify } if (strpos($tokens[11], 'a') !== false) { //authentication } return $subKey; }
public function getKeys($keyId = null) { $keys = array(); $data = $this->getResource()->keyinfo($keyId); foreach ($data as $kd) { $key = new Key(); foreach ($kd['subkeys'] as $skd) { $subKey = new SubKey(); $subKey->setCanEncrypt($skd['can_encrypt']); $subKey->setCanSign($skd['can_sign']); $subKey->setCreationDate($skd['timestamp']); $subKey->setExpirationDate($skd['expires']); $subKey->setFingerprint($skd['fingerprint']); $subKey->setHasPrivate(false); $subKey->setId($skd['keyid']); $subKey->setRevoked($skd['revoked']); $subKey->setDisabled($skd['disabled']); //$subKey->setLength($skd['can_encrypt']); //$subKey->setAlgorithm(); $key->addSubKey($subKey); } foreach ($kd['uids'] as $uid) { $userId = new UserId(); $userId->setName($uid['name']); $userId->setComment($uid['comment']); $userId->setEmail($uid['email']); $userId->setUid($uid['uid']); $userId->setIsRevoked($uid['revoked']); $userId->setIsValid($uid['invalid'] ? false : true); $key->addUserId($userId); } $keys[] = $key; } return $keys; }