Até a chegada da eletrificação, a comunidade era abastecida por um gerador a óleo da Marinha. Sem geladeira em casa, ferro elétrico e computador, a energia era suficiente para assistir à televisão e ligar um rádio. Mas só até as 22h para quem não tinha aparelhos funcionando a bateria ou com minigeradores. Para carregar o celular, era preciso caminhar cerca de 1 quilômetro até o quartel.
Apesar da certificação da Fundação Palmares e do Instituto de Colonização e Reforma Agrária (Incra), o Quilombo de Marambaia trava uma disputa pela regularização de 1,6 mil hectares dos 8,1 mil hectares da ilha com a Marinha. Os militares querem instalar uma base de submarinos no local e recorreram à Justiça para expulsar os quilombolas, além de impedir reforma nas casas.
Para intermediar a relação enquanto não sai a decisão judicial, a Secretaria de Políticas de Igualdade Racial (Seppir) investe em programas como a eletrificação, disse a secretária de Comunidades Tradicionais, Ivonete Carvalho. "De um lado, temos os quilombolas e, de outro, a Marinha. Respeitamos todos os argumentos, sem deixar a comunidade de lado."
A regularização fundiária de comunidades quilombolas está prevista na Constituição Federal. Porém, como o caso envolve divergências com órgão do próprio governo, passa por uma reavaliação na Câmara de Conciliação da Advocacia-Geral da União, sem prazo final.
A eletrificação em Marambaia custou R$ 10,5 milhões e foi possível com investimento dos governos federal e estadual, em parceria com a Ampla, concessionária de energia. O sistema levou cerca de três anos para ser implantando e teve um alto custo porque precisou de 9 quilômetros de cabos submarinos.

Os certificados do tipo A3 são armazenados em hardware, tais como smartcards (cartões inteligentes) e tokens (parecido com um pendrive). Para utilizá-los, primeiramente é necessário instalar os drivers necessários: driver do cartão / token e driver da leitora.
Após a instalação destes pré-requisitos, ao espetar o token na USB ou colocar o cartão na leitora, os certificados armazenados nestes dispositivos são exibidos pelo Gerenciador de Certificados do Windows, como mostra a imagem abaixo:
Veja só onde ele aparece: No armazenamento “Pessoal” do usuário que está logado na máquina! E ele pode ser acessado através da classe X509Store :).
Se você já teve a curiosidade e testou os códigos presentes na classe SignWrappers que foi postada anteriormente, ao passar um certificado do tipo A3 para o método SignFile você pode ter ficado decepcionado, pois dá uma mensagem de erro com alguma coisa remetendo a um modo silencioso (não me lembro da mensagem exata hehe).
E se você notou, cada vez que você utiliza o certificado A3 em um programa para assinar arquivos, como a suite Microsoft Office, ele sempre pede a senha PIN do certificado, coisa que não ocorre na nossa classe de assinatura digital.
Meus queridos, estes problemas podem ser resolvidos com uma minúscula alteração no método SignFile da nossa classe SignWrappers! Veja o código:
Neste post tem o funcionamento completo da classe. A adição que fizemos foi passar o parâmetro “Silent”, do tipo booleano, no método ComputeSignature do objeto SignedCms. E o que ele faz?
Caso passemos true, a assinatura será calculada sem intervenção do usuário, ou seja, a senha para acessar a chave privada do(s) certificado(s) deverá(ão) ser informada(s) junto com o certificado. Isso é válido para os certificados A1, vide sobrecargas do método SignFile que possui passagem de senha.
Um certificado A3 geralmente pede a senha PIN (utilizada para acesso aos objetos privados do token / smartcard) através de uma caixa de diálogo do driver do dispositivo, e caso o método ComputeSignature esteja em modo silencioso, esta caixa não será exibida e disparará uma exceção com a mensagem de erro informando a respeito.
Há algum tempinho atrás, postei uma classe com métodos estáticos cuja finalidade é empacotar arquivos com assinatura digital em uma mensagem PKCS #7, utilizando certificados padrão X.509.
Em um dos comentários daquele post, fui questionado sobre como fazer a verificação da validade dessa assinatura digital.
Opa, mas na classe tem um método chamado VerifySign, que verifica se existe a assinatura em um arquivo que é passado como parâmetro. Sim, você leu direito: ele verifica apenas a existência da assinatura, não a sua validade.
Dando uma pesquisada, achei o método CheckSignature do objeto SignedCms, que faz exatamente o que o nosso leitor quer: verificar a validade da assinatura digital. Vamos ao código:
A única adição que é necessária fazer ao método VerifySign existente no outro post é a chamada do método CheckSignature do objeto da classe SignedCms, que verifica a validade da assinatura digital, e recebe como parâmetro um booleano que indica se será verificada apenas a validade da assinatura (true) ou se além da validade da assinatura também serão verificados os dados dos certificados empregados, tais como a validade, revogação, propósito da chave privada, entre outros.
O método recebe como parâmetro um arquivo qualquer, assinado ou não, e cria uma instância da classe SignedCms na variável signed, que manipula mensagens PKCS #7.
Em seguida, chamamos o método Decode() passando como parâmetro este arquivo. Ele serve para decodificar a mensagem PKCS #7, de maneira que possamos acessar os certificados utilizados para acessar o arquivo e o arquivo em si, para poder “detachá-lo” da mensagem PKCS #7.
Se o arquivo não contiver uma assinatura digital, será disparada uma exceção do tipo CryptographicException, que será interceptada pelo “catch” e fará o nosso método retornar false. Neste caso o retorno é false causado pela não existência de assinatura digital.
Se o arquivo estiver assinado, chamaremos o método CheckSignature do objeto “signed”, informando que apenas queremos verificar a validade da assinatura digital, sem verificar os detalhes dos certificados (se passarmos false, o processo de verificação dos certificados requer uma conexão com a Internet – o que nem sempre é possível -, para verificação de lista de certificados revogados – geralmente no servidor da entidade que emitiu o certificado - entre outras coisas).
Interessante é que este método retorna void! Caso a assinatura seja inválida, por exemplo, o arquivo foi alterado depois de assinar, também será disparada uma exceção do tipo CryptographicException, que será interceptada pelo “catch” e fará com que o nosso método VerifySign retorne false.
Caso o método não dispare nenhuma exceção, ele retornará true, informando que a assinatura digital é válida.