Como assinar midlets com certificados digitais e certificar suas aplicações JME?

34 respostas
N

Pessoal, a quem precisar, escrevi um artigo no DevMobile que ensina assinar aplicações JME.

Como assinar midlets com certificados digitais e certificar suas aplicações JME?
http://devmobile.blog.br/2008/07/06/como-assinar-midlets-com-certificados-digitais-e-certificar-suas-aplicacoes-jme/

Espero que seja de ajuda a alguém.

Abraço.

34 Respostas

P

npereirajr:
Pessoal, a quem precisar, escrevi um artigo no DevMobile que ensina assinar aplicações JME.

Como assinar midlets com certificados digitais e certificar suas aplicações JME?
http://devmobile.blog.br/2008/07/06/como-assinar-midlets-com-certificados-digitais-e-certificar-suas-aplicacoes-jme/

Espero que seja de ajuda a alguém.

Abraço.

Bom artigo e gostaria de acrescentar o seguinte:

:arrow: O certificado da Verisign não só permite assinar MIDlets como aplicações Java normal (desktop)
:arrow: O certificado da Verisign não é suportado por todos os modelos de um fabricante. Alguns aparelhos podem suportar, outros não, quem dita isto é o fabricante que decide quais certificados serão suportados (UTI Root, Tawte, Verisign,etc…)
:arrow: Aplicação assinada não é sinônimo de que as perguntas de acesso a rede, ao sistema de arquivos,etc, sumirão. Nos aparelhos que pude testar, a pergunta só vai sumir se após a aplicação assinada e instalada no aparelho, se o usuário ir no menu de opções e marcar que não quer mais perguntar ao usuário. Tal opção só fica habilitada ou existe para aplicações assinadas.

Portanto minha gente, antes de sair comprando o certificado da Verisign achando que vai resolver os seus problemas, faça o seguinte:

:arrow: Verifique quais certificados o aparelho suporta (via site ou entre em contato com o fabricante)
:arrow: Certificado tem prazo de validade para ser útil para assinar. Pense a respeito se vc gostaria que o certificado fosse válido por 1,2 ou 3 anos. Após este prazo, o certificado não mais vale para assinar as aplicações. Aplicações instaladas nos celulares continuam a rodar após o certificado expirar, pois a validade do certificado só é checada no momento da instalação da aplicação no aparelho. Quanto maior o prazo de validade, mais caro fica para comprar.

UTI Root x Verisign

UTI Root ou também conhecido como Javaverified é um orgão certificador o qual você paga para eles realizarem testes na tua aplicação e só aí então ela depois de testada e atendendo aos requisitos deles, você será certificado. É um processo caro e demorado

Verisign: Para obter o certificado basta ter a grana. Entrando no site dela você fornecer algumas informações, paga e em 2 dias ± o certificado é enviado. Sai mais barato que o UTI Root e é mais rápido também.

ricoldi

Maldita assinatura de aplicativo j2me… estou procurando como comprar de qual comprar a 1 tempão, mas cada vez mais fico desanimado com isso.

Phoda,

Att
Ricoldi

N

Pois é, a questão de comprar, não comprar, por que comprar, por que não comprar, de quem comprar, não foi meu objetivo no artigo.

Meu objetivo foi unicamente mostrar como assinar, depois de você já ter comprado. Muitos clientes exigem que sua aplicação seja certificada. Você não tem escolha.

Mas vale um novo artigo para discutir esses pontos acima, muito bem citados pelo boone :slight_smile:

Pena que eu esteja sem tempo.

Abraço

ricoldi

npereirajr:
Pois é, a questão de comprar, não comprar, por que comprar, por que não comprar, de quem comprar, não foi meu objetivo no artigo.

Meu objetivo foi unicamente mostrar como assinar, depois de você já ter comprado. Muitos clientes exigem que sua aplicação seja certificada. Você não tem escolha.

Mas vale um novo artigo para discutir esses pontos acima, muito bem citados pelo boone :slight_smile:

Pena que eu esteja sem tempo.

Abraço

Com certeza npereirajr, nem foi minha intenção criar um debate, foi só um desabafo, e foi um bom artigo, meus parabens e obrigado!

Att
Ricoldi.

P

Seguinte pessoal,

segui o tutorial do amigo ae, mas no final recebo a seguinte mensagem: keytool error: java.lang.Exception: Certificate reply does not contain public key for <key_wifindme>, alguem sabe o que pode estar acontecendo?

Obrigado

pedrotaek

aeee galera to com o mesmo problema que o brother daki de cima!!!

da um help aeee cabeçada!!!

heeeeeeeelppppppppp

:?: :?: :?: :?: :?: :?: :?: :?:

:shock: :shock: :shock: :shock:

J

Caramba, que coincidência!! No meu trabalho eu também to com o mesmo problema! Alguém saberia como resolver???

Obrigada!

pedrotaek

:?: :?: :?: :?: :?: :?:

:shock: :shock: :shock: :shock: :shock:

:? :? :? :? :? :?

:frowning: :frowning: :frowning: :frowning: :frowning:

:hunf: :hunf: :hunf: :hunf: :hunf:

:thumbdown: :thumbdown: :thumbdown: :thumbdown: :thumbdown:

JavaES

Vocês que estão com o mesmo roblema aí em cima… vocês compraram o certificado para poder seguir o tutorial ou estão fazendo sem ter o certificado? O problema pode estar aí.

P

eu comprei um certificado junto a verisign e estou usando ele para isto, entrei em contato com eles e parece que houve um erro na hora de gerar o arquivo .csr pra mandar pra eles, to aguardando um novo certificado que ele ficaram de enviar com um .csr gerado de acordo como sugere o tutorial da propria verisign, espero q resolva logo e ai conto a historia aqui…

P

Ué…como a Verisign emite um certificado com erro pra vc ? Não foi você que colocou informações erradas na hora de gerar o CSR ?
Uma empresa como ela, comer bola na hora de emitir isto é difícel…
Quando te ligaram para confirmar as informações, vc não passou todas corretamente ?

Fiquei curioso sobre este caso. Nunca vi algo assim…

P

na verdade o erro foi meu ao gerar o arquivo .csr pra mandar pra eles, eu nao adicionei a informação do meu keystore, mas criei um outro e eles ja me mandaram e funcionou todo o processo de assinatura, mas agora quando vou intalar no celular o celular ainda diz: “Não há nenhuma assinatura, o aplicativo será tratado como não confiável. Deseja continuar a instalação?”.

Será que o celular não reconhece o certificado da verisign?

P

prmota:
na verdade o erro foi meu ao gerar o arquivo .csr pra mandar pra eles, eu nao adicionei a informação do meu keystore, mas criei um outro e eles ja me mandaram e funcionou todo o processo de assinatura, mas agora quando vou intalar no celular o celular ainda diz: “Não há nenhuma assinatura, o aplicativo será tratado como não confiável. Deseja continuar a instalação?”.

Será que o celular não reconhece o certificado da verisign?

Você não citou como está o seu arquivo JAD.

Confirmou que existem os atributos:

MIDlet-Jar-RSA-SHA1
MIDlet-Certificate-1-1…MIDlet-Certificate-1-2…MIDlet-Certificate-1-3…

Sem eles, o celular vai dar a esta mensagem mesmo, pois para a aplicação ser reconhecida como assinada, o JAD e o JAR tem que ser colocado no aparelho, e o JAD tem que ter estes atributos com os valores corretos.

P

entao este é o problema, eu estava enviando somente o .jar para o celuar, mas quando mando o .jar e o .jad e faço a intalação pelo .jad ai da tudo certo mesmo, entretando fica meio chato ter q enviar dois arquivos para o celular nao? imagina uma aplicação para ser distrubuida e ser usada por qualquer pessoa que tenha um celular com java isto seria um fator desaminador nao? teria alguma forma de juntar as duas coisas num aquivo unico a ser enviado aos aparelhos?

N

Não há problema algum em enviar o JAD junto. Na realidade, o correto seria SEMPRE enviar o JAD. Toda instalação deveria iniciar pelo JAD. Ocorre que alguns fabricantes, visando facilitar as coisas, permitem que se faça a instalação apenas pelo JAR. No caso de aplicações assinadas, SEMPRE é necessário o JAD.

Se você disponibilizar sua aplicação na web, para uma instalação via OTA, usando o navegador do celular, você deverá instalar usando a URL do JAD, não do JAR. O JAD se encarregará de informar ao instalador onde se encontra o JAR. Na verdade o usuário nem saberá que haviam 2 arquivos, ele verá apenas o JAD mesmo.

Mas se for instalar via cabo, ou via bluetooth, sim, o JAD sempre deve ser enviado junto ao JAR.

P

putz,

ja tinha testado a aplicação assinada e deu tudo certo, mas ai depois eu resolvi automatizar a assinatura no build usando o ant, e depois disso agora quando vou instalar a mesma aplicação assinada no celular, recebo a mensagem: “instalação da aplicação negada pelo servidor java”.

alguem ja viu isso?

R

Boa noite…
Estou iniciando no desenvolvimento de midlets e to com um projeto não tão trivial…

Preciso obter o CellID, que como a mairia aqui deve saber, é o nr identificador da antena que o aparelho está conectado no momento.

a forma que encontrei em todos os fóruns pra obter essa informação é SystemgetProperty(“CellID”)… porém, testei em aparelhos Nokia e Motorola, e sempre me retorna o valor NULL

Vi em alguns sites que algumas propriedades só funcionam quando o Midlet é assinado… gostaria de saber se é o caso do CellID… ou alguém que tenha certificado poderia testar essa propriedade…

Obrigado
Renato

P

RenatoLP:
Boa noite…
Estou iniciando no desenvolvimento de midlets e to com um projeto não tão trivial…

Preciso obter o CellID, que como a mairia aqui deve saber, é o nr identificador da antena que o aparelho está conectado no momento.

a forma que encontrei em todos os fóruns pra obter essa informação é SystemgetProperty(“CellID”)… porém, testei em aparelhos Nokia e Motorola, e sempre me retorna o valor NULL

Vi em alguns sites que algumas propriedades só funcionam quando o Midlet é assinado… gostaria de saber se é o caso do CellID… ou alguém que tenha certificado poderia testar essa propriedade…

Obrigado
Renato

Sim, é isto mesmo. Por ser uma informação sensível, não é qualquer aplicação que vem e obtem a posição do usuário, mesmo que esta não tenha tanta precição assim, como é o caso do Cell-ID.

Dificelmente você encontrará algum aparelho (acredito q não encontre) que permita obter isto sem a aplicação estar assinada. Mesmo estando assinada, ainda assim não é garantido de obter visto que fabricantes como SonyEricsson e Nokia só disponibilizam este recurso para celulares mais parrudo$.

R

Alguém tem certificado que possa testar essa funcão CellID ?
Entrei em contato com a Verisign e me informaram que eu necessido adquirir um SDK que o valor varia de 30 mil a 200 mil reais…
Alguém tem noção de valores e qual é o certificado que devo adquirir ?

P

RenatoLP:
Alguém tem certificado que possa testar essa funcão CellID ?
Entrei em contato com a Verisign e me informaram que eu necessido adquirir um SDK que o valor varia de 30 mil a 200 mil reais…
Alguém tem noção de valores e qual é o certificado que devo adquirir ?

Se vc ligou na Verisign brasil eles não vão saber te informar, pq isto quem entende é a Verisign americana.
O preço do certificado é de uns ± US 800. Encarece conforme a validade que você quer: 1, 2 ou 3 anos.

R

Não sei se eu entendi direito, mas isso é só pra ter uma desculpa pra cobrar um valor da empresa que desenvolve o aplicativo.
Pelo que eu entendi, em momento algum eles analisam o aplicativo ou o código… ou seja: se pagar eles assinam teu aplicativo e dizem q é TRUSTED.

P

RenatoLP:
Não sei se eu entendi direito, mas isso é só pra ter uma desculpa pra cobrar um valor da empresa que desenvolve o aplicativo.
Pelo que eu entendi, em momento algum eles analisam o aplicativo ou o código… ou seja: se pagar eles assinam teu aplicativo e dizem q é TRUSTED.

Eles não tem acesso ao seu código.
Se pagar, eles te vendem um certificado e VOCÊ assina QUALQUER E QUANTAS aplicações você desenvolver.

S

Bom pessoal, todos comentaram ali do problema na hora de importar o certificado, depois que a verisign mandou o certificado de volta, também não consegui de primeira mas fiz o seguinte:

Exclui todos os certificados da máquina com o keytool -delete. E acessei esse link e segui certinho todos os passos: https://knowledge.verisign.com/support/code-signing-support/index?page=content&id=AR185&actp=LIST

Depois entrei no site da verisgin, utilizei a opção de “replace” do certificado para enviar novamente o CSR e substibuir ele. Depois disso funcionou a importacão do certificado.

Só que agora eu assino o midles e nada de funcionar, num telefone motorola v3i, ele diz que o prazo da aplicação expirou, em um nokia N71, ele pede para conectar na internet e verificar o certificado se permito fazer isso ele diz que não consegue autenticar.

Já fiz um monte de testes, já usei os comandos: jarsigner e jadtool.jar, tentei assinar com o netbenas com o tutorial do nosso colega Nelson, mas nada de funcionar.

Alguém tem o comando utilizado para assinar o jar e o jad. Outra coisa qual versão do java, Wirless Tookit estão utilizando, vi até que tem uns sites na internet que diz que determinadas versões do java tem problema na hora de gerar assinatura com o hash da assinatura.

Sds

P

silverio.hoppe:
Bom pessoal, todos comentaram ali do problema na hora de importar o certificado, depois que a verisign mandou o certificado de volta, também não consegui de primeira mas fiz o seguinte:

Estranho não conseguir de primeira…mas enfim…

Testei com alguns Nokias e nenhum pede validação na internet, no entanto é possível que a mesma ocorra já que existe um protocolo usado nos celulares para conversar com servidores de validação de certificados na internet. Esta validação deve ocorrer 1 vez (suponho), durante o processo de instalação da aplicação, já que é neste momento que o certificado é usado, depois não mais.

O melhor WTK é o 2.5.2. Vc pode usar o plugin EclipseME para assinar as aplicações. Nada de fazer na mão a não ser que você já saiba de todos os passos envolvidos e sintaxes, coisa que eu acho que não.

S

Os passos que estou utilizando para assinar manualmente são desse link: ( fora outras que já peguei em outros ).
https://knowledge.verisign.com/support/ssl-certificates-support/index?page=content&id=SO8381

Fiz assinatura através do Netbenas, posso tentar no eclipse caso seja necessário qual o versão vc está usando?

Ali no link acima no final tem o comando:

java -jar jadtool.jar -showcert -all -inputjad <input_jadfile>

Ele mostra:
Midlet-Certificate-1-1: ( mostra as específicaçoes lá do CSR ). Data de from: Apr 13 21:00:00 GMT-03:00 2009 to Apr 11 20:59:59 GMT-03:00 2010.

Midlet-Certificate-1-2: ( mostra as específicaçoes lá do CSR ). ( aqui ele muda a data 07/2004 até 2014 ).
Midlet-Certificate-1-3: ( mostra as específicaçoes lá do CSR ). ( aqui ele muda a data 01/1996 até 2028 ).

Em anexo coloquei também uma imagem que mostra o certificado configurado no Netbeans:

Vc não teria exemplo de um Jad aí pra mim verificar com o meu aqui se falta alguam informação.


P
silverio.hoppe:
Os passos que estou utilizando para assinar manualmente são desse link: ( fora outras que já peguei em outros ). https://knowledge.verisign.com/support/ssl-certificates-support/index?page=content&id=SO8381

Fiz assinatura através do Netbenas, posso tentar no eclipse caso seja necessário qual o versão vc está usando?


Eclipse 3.2 com EclipseME 1.7.9
silverio.hoppe:

Ali no link acima no final tem o comando:

java -jar jadtool.jar -showcert -all -inputjad

Ele mostra:
Midlet-Certificate-1-1: ( mostra as específicaçoes lá do CSR ). Data de from: Apr 13 21:00:00 GMT-03:00 2009 to Apr 11 20:59:59 GMT-03:00 2010.

Midlet-Certificate-1-2: ( mostra as específicaçoes lá do CSR ). ( aqui ele muda a data 07/2004 até 2014 ).
Midlet-Certificate-1-3: ( mostra as específicaçoes lá do CSR ). ( aqui ele muda a data 01/1996 até 2028 ).


Você não precisa deste comando para ver se a aplicação está assinada ou não. Abra o JAD e se tiver estes atributos Midlet-Certificate-1-N e MIDlet-Jar-RSA-SHA ela estará...

Copia e cola o teu JAD aqui (coloque entre [code]) para darmos uma olhada.

R

Bom dia pessoal, estou com um problema em uma aplicaçao que precisa escrever em um arquivo de texto para celulares Nokia 2630 S-40. Apesar de ser um problema que nao é exclusivo para esse topico^^.
O sistema pede confirmaçao do usuario para alterar o arquivo e mesmo confirmando a opção ocorre uma SecurityException.
Minha duvida é se realmente preciso de um certificado para poder escrever em arquivos .txt ou pode ser uma falha no codigo.

P

rogerwweber:
Bom dia pessoal, estou com um problema em uma aplicaçao que precisa escrever em um arquivo de texto para celulares Nokia 2630 S-40. Apesar de ser um problema que nao é exclusivo para esse topico^^.
O sistema pede confirmaçao do usuario para alterar o arquivo e mesmo confirmando a opção ocorre uma SecurityException.
Minha duvida é se realmente preciso de um certificado para poder escrever em arquivos .txt ou pode ser uma falha no codigo.

Cara, não faça mais isto, pois deturpa a proposta original do post. O certo seria ter aberto um tópico para sua dúvida.
Bem, respondendo:

Vc não precisa de certificado para escrever em arquivo.
O que acontece é que sem certificado, a implementação Java irá solicitar sua confirmação para esta operação que é sensível.
Exemplos de operação sensível (obter lat/log, escrever/ler arquivo, conectar a internet, acessar a câmera,etc)

É importante que a aplicação assinada requeira a devida permissão no arquivo JAD (se não me engano é em MIDLet-Permissions)

R

Ok, obrigado pela prestatividade mesmo assim.

S

Segue arquivo Jad.

MIDlet-1: Midlet, ,CanvasListExample
MIDlet-Jar-Size: 2892
MIDlet-Jar-URL: Test3.jar
MIDlet-Name: Test3
MIDlet-Vendor: GUIA
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.1
MicroEdition-Profile: MIDP-2.0
MIDlet-Certificate-1-1: MIIFOzCCBCOgAwIBAgIQW+7FydLTxx+IPmkw3673STANBgkqhkiG9w0BAQUFADCBtDELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2UgYXQgaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykwNDEuMCwGA1UEAxMlVmVyaVNpZ24gQ2xhc3MgMyBDb2RlIFNpZ25pbmcgMjAwNCBDQTAeFw0wOTA0MTQwMDAwMDBaFw0xMDA0MTEyMzU5NTlaMIH+MQswCQYDVQQGEwJCUjEXMBUGA1UECBMOU0FOVEEgQ0FUQVJJTkExETAPBgNVBAcTCEJMVU1FTkFVMTowOAYDVQQKFDFHVUlBIEZBQ0lMIEVESVRPUkEgREUgTElTVEFTIFRFTEVGT05JQ0FTIExUREEgRVBQMTEwLwYDVQQLEyhEaWdpdGFsIElEIENsYXNzIDMgLSBKYXZhIE9iamVjdCBTaWduaW5nMRgwFgYDVQQLFA9EZXNlbnZvbHZpbWVudG8xOjA4BgNVBAMUMUdVSUEgRkFDSUwgRURJVE9SQSBERSBMSVNUQVMgVEVMRUZPTklDQVMgTFREQSBFUFAwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAIBH4LlUxYnaDdCYGIxaNQKUaSmB6AiDuaGlRKFx2RwAV9vIfkN9ytcg015ienm1il9Vxu/HeD+5NjKFEntE+hjCZKDa71NYHx72nzKSHxo0diZAPq7nJjF08G2E+ksFa4wm20U+V9p6n3bL+d03OnnCxPX9RwaiLJXs11LrSW8xAgMBAAGjggF/MIIBezAJBgNVHRMEAjAAMA4GA1UdDwEB/wQEAwIHgDBABgNVHR8EOTA3MDWgM6Axhi9odHRwOi8vQ1NDMy0yMDA0LWNybC52ZXJpc2lnbi5jb20vQ1NDMy0yMDA0LmNybDBEBgNVHSAEPTA7MDkGC2CGSAGG+EUBBxcDMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9ycGEwEwYDVR0lBAwwCgYIKwYBBQUHAwMwdQYIKwYBBQUHAQEEaTBnMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC52ZXJpc2lnbi5jb20wPwYIKwYBBQUHMAKGM2h0dHA6Ly9DU0MzLTIwMDQtYWlhLnZlcmlzaWduLmNvbS9DU0MzLTIwMDQtYWlhLmNlcjAfBgNVHSMEGDAWgBQI9VHo+/49PWQ2fGjPW3io37nFNzARBglghkgBhvhCAQEEBAMCBBAwFgYKKwYBBAGCNwIBGwQIMAYBAQABAf8wDQYJKoZIhvcNAQEFBQADggEBALFiZZxRwU/1cAmGzYv3K84uKUssUarwdMJl3JBs1nQGd1LeFS1dHwotZqFQGNx742bhZHdWz3n7Q1wanvl2c8f+x8GYI/KwLTfhs6rs7xTcVDyqo8qgf53tQuTze+eZ1Dn0Mxuulc8Fh5yf8NTLTupsrwUs5lB/Z7dIywGfJyF+fC/BrX/jiVeRrpTkmqBTmFZq+YOwcrE9HuyHtDVvOVq9jr/ffkVIpiWCo6Sj3hgHJ59hgip6FWg5hCt0n/t3tBeAh+edHfD4YhlstxniK/yN3btA1uJe6Naddv+pCLtyscCCulAaaWKSZPob8nMlfWM4OdR6p9MRG9BqPhbQPXE=
MIDlet-Certificate-1-2: MIIEvzCCBCigAwIBAgIQQZGhWjl4389JZWY4HUx1wjANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsTLkNsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNzE2MDAwMDAwWhcNMTQwNzE1MjM1OTU5WjCBtDELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2UgYXQgaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykwNDEuMCwGA1UEAxMlVmVyaVNpZ24gQ2xhc3MgMyBDb2RlIFNpZ25pbmcgMjAwNCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL687rx+74Pr4DdP+wMQOL4I0ox9nfqSfxkMwmvuQlKM3tMcSBMl6sFjevlRZe7Tqjv18JScK/vyZtQk2vf1n24ZOTa80KN2CB4iJyRsOJEn4oRJrhuKof0lgiwQMOhxqyjod0pR8ezN+PBU1G/A420Kj9nYZI1jsi1OJ/aFDv5t4ymZ4oVHfC2Gf+hXj61nwjMykRMg/KkjFJptwoRLdmgE1XEsXSH6iA0m/R8tkSvnAVVN8m01KILf2WtcttbZqoH9X82DumOd0CL8qTtCabKOOrW8tJ4PXsTqLIKLKP1TCJbdtQEg0fmlGOfA7lFwN+G2BUhSSG846sPobHtEhLsCAwEAAaOCAaAwggGcMBIGA1UdEwEB/wQIMAYBAf8CAQAwRAYDVR0gBD0wOzA5BgtghkgBhvhFAQcXAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhMDEGA1UdHwQqMCgwJqAkoCKGIGh0dHA6Ly9jcmwudmVyaXNpZ24uY29tL3BjYTMuY3JsMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDAzAOBgNVHQ8BAf8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgABMCkGA1UdEQQiMCCkHjAcMRowGAYDVQQDExFDbGFzczNDQTIwNDgtMS00MzAdBgNVHQ4EFgQUCPVR6Pv+PT1kNnxoz1t4qN+5xTcwgYAGA1UdIwR5MHehY6RhMF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eYIQcLrkHRDZKTS2OMp7A8y6vzANBgkqhkiG9w0BAQUFAAOBgQCuOhe4SntV+mRV7ECk7UlBkJmcibyvLh3KeCP5HBkPf+tovDLZiDje3D/TibQ/sYKW8aRauu0uJtPefAFuAAoApAaSEUgJQPkcGHlnIyTgu9XhUK4b9Q7d4C6BzYCjbFJPkXVViroi8tLqQXWIL2NVfR5UWpVZytk0gcBfXvZ6tQ==
MIDlet-Certificate-1-3: MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBAgUAA4GBALtMEivPLCYATxQT3ab7/AoRhIzzKBxnki98tsX63/Dolbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59AhWM1pF+NEHJwZRDmJXNycAA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mK
MIDlet-Jar-RSA-SHA1: ER4S4jla/UdZN/bHfRuTxKscRxRG4XWsbPXlNvWCepX12xcgIIkFP3lAtf6nqWJXakrRFvFHPGuCkc/2UoO7kPBCfYawlfsEnJWiP5IErn9xqSuIrYUpGZ6/Obm1nhARkOXAngTca6vAXtmwSBAGm
S

Postei o Jad, algo errado com ele?

P

Cadê o MIDlet-Permissions com a permissão apropriada da API que você está utilizando ?

S

Pois bem Boone,

Estranho que o netbeans, não gera essa tag. Mas nesse aplicativo que estou testando a assinatura. Não tem nada demais, ou sempre vai ter que ter essa tag, independente de api ou não utilizada.

Segue codigo do aplicativo test que na verdade é um dos demos que já vem junto com SDK. Que api aí nesse caso teria que estar habilitada:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class CanvasListExample extends MIDlet implements CommandListener{
  private Display display;
  private CanvasList canvas;
  private List list;
  private Command show;

  public CanvasListExample() {
    canvas = new CanvasList();
    list = new List("Employee List", Choice.IMPLICIT);
    show = new Command("Show", Command.OK, 1);
    list.append("Miss. Anusmita", null);
    list.append("Miss. Neelam", null);
    list.append("Mr. Sandeep", null);
    list.append("Mr. Suman", null);
    list.append("Mr. Saurabh", null);
    list.addCommand(show);
    display = Display.getDisplay(this);
  }

  public void startApp(){
    list.setCommandListener(this);
    display.setCurrent(list);
  }

  public void pauseApp() {}

  public void destroyApp(boolean unconditional){
    notifyDestroyed();
  }

  public void commandAction(Command c, Displayable d){
    String label = c.getLabel();
    if(label.equals("Show")){
      display.setCurrent(canvas);
    }
  }
  class CanvasList extends Canvas implements CommandListener{
    private Image image;
    private Command back;

    public CanvasList(){
      back = new Command ( "Back", Command.BACK, 1);
      addCommand (back);
      setCommandListener (this);
    }

    public void paint(Graphics g){
      int width = getWidth();
      int height = getHeight();
      String str = list.getString(list.getSelectedIndex());

      g.setColor(0, 0, 255);
      g.drawString(str, width/2, height/2, Graphics.HCENTER | Graphics.TOP);
    }

    public void commandAction(Command c, Displayable d){
      String label = c.getLabel();      
      if(label.equals("Back")){
        display.setCurrent(list);
      }
    }
  }
}
P

Sugiro abrir um tópico exclusivo para sua dúvida ao invés continuarmos poluindo este daqui.

Sobre o certificado, ele só é necessário para APIs sensíveis, não para aplicações básicas.

Pelo código que mostrou, a aplicação nem precisaria estar assinada.

Quanto a tag, o Netbeans coloca desde que você vá na tela de opções do projeto e “peça” isto.

Criado 6 de julho de 2008
Ultima resposta 24 de abr. de 2009
Respostas 34
Participantes 10