Pergunta

Tentando usar GnuPG com Delphi (Win32). Preciso assinar algum arquivo com tal comando console:

"C:\Program Files\GNU\GnuPG\gpg.exe" -a -u Alex --passphrase secretpassword --yes --clearsign -o C:\Result.asc C:\InputFile.txt

Primeiro eu criei formulários VCL APP normal e função CreateProcess usado, tudo estava OK, mas quando eu transferidos esse código para meu aplicativo de serviço, saídas gpg.exe com código 2. Talvez eu perdi alguma coisa? Alguma idéia?

Atualizar

Apenas no caso de alguém tem um problema tão grande. GnuPG armazena chaves em C:\Documents And Settings\<username>\Application Data\gnupg\ mas quando é executado de serviços de outra conta de usuário (SYSTEM) - ele não pode encontrar sua chave. GL & HF

Foi útil?

Solução

Tente despejar stderr e veja se você conseguir alguma coisa. Você pode ser capaz de canalizar a mensagem. Poderia ser um problema ao ler a frase-senha. Eu meio que me lembro de ter canalizar a senha em gpg em vez de especificar lo como um parâmetro.

Outras dicas

Como um (filho de um) aplicativo de serviço, não há shell como pai, para que os aplicativos criança pode ser simplesmente incapaz de usar stdio. Tentativa de executar com cmd / c ou através shellexecute. Ou melhor, use um programa que nem sempre requer stdio.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top