O ponto principal a ser entendido sobre a verificação de GPGs para pacotes é que a assinatura GPG é incorporada no pacote e as chaves GPG são armazenadas no rpmdb. Não existe uma API segura para perguntar "Que chave é o pacote X assinado com" você só pode perguntar "O pacote X está assinado com uma chave no rpmdb" e "A chave Y existe no rpmdb". Observe também que isso significa que um pacote só pode ser assinado por uma chave e que a alteração da assinatura altera os pacotes.
O Yum executa várias etapas quando faz o download de um pacote de um repositório configurado com "gpgcheck = 1" (o padrão).
-
Depois que o primeiro pacote de um repositório é baixado, um simples "Este pacote está assinado com uma chamada gpgkey conhecida" está terminado. Se for, nada está feito. Se não é um aviso é exibido para o usuário. Isso é puramente informativo.
-
Antes da transação começar, o yum verifica se o pacote está assinado com um gpgkey conhecido (um já instalado no rpmdb), se for o pacote é válido e nenhuma outra etapa é executada. Se não então continua a # 3.
-
O Yum faz o download de todos os arquivos fornecidos nos dados "gpgkey" para o repositório de onde vem o pacote. Yum analisa isso, ignorando quaisquer chaves já presentes no rpmdb. Se não houver novas chaves, yum irá falhar.
-
Se houver um "gpgcakey" especificado para o repositório, então yum fará o download de todos os arquivos fornecidos nos dados "gpgcakey". Yum parses que, ignorando todas as chaves já presentes nos repositórios gpg chaveiro. Se não houver gpgcakeys instalado após a análise do arquivo, yum irá falhar. Se houver novos gpgcakeys, então se eles já estiverem importados como chaves CA para outro repo. eles são automaticamente importado. Se esta é a primeira vez que vimos esta chave CA, o usuário é perguntado se ele quer instalar a chave (a menos que -y seja dado). Se ele diz que não para qualquer chave, yum falha (embora todas as chaves importadas permanecer em o repo. chaveiro gpg).
-
Se houver pelo menos um "gpgcakey" válido, o yum tentará fazer o download um arquivo .asc "gpgkey". Se isso não existe, yum avança para o passo # 6 como se não houvesse gpgcakey. Se existir, então o "gpgkey" é testado contra o "gpgcakey" e se passa é adicionado ao rpmdb, se falhar, o yum falhará (embora todas as chaves importadas permaneçam no rpmdb).
-
Se houver novos gpgkeys, o usuário é perguntado se deseja instale cada chave (a menos que -y seja fornecido). Se ele disser não para qualquer chave, yum falha.
-
Após a instalação de novas chaves, o yum verifica novamente o pacote assinatura contra o gpgkeys no rpmdb. Se isso falhar, yum falha.