BlackBerry Developers Group Argentina Message Board Desarrollo Java › Cifrado de Contexto

Cifrado de Contexto

Freddy Campos
Posted Feb 17, 2012 3:51 PM
user 33095652
Buenos Aires, AR
Post #: 1
Send an Email Post a Greeting
buenas estoy tratando de hacer una aplicacion que maneje cifrado de contexto para blackberry

la intencion es emular la funcion que hace el php

hash_init

para ir cifrando obteniendo bytes de un hmac
hash_hmac

hago bien el hmac en la bb pero no se como usar contextos alguien podria ayudarme
Gracias

incluyo parte del codigo




public byte[] mi_sha1(String dni,byte[] prPass,byte cantidad)
{
byte[]Out = new byte[16];
byte[]kopad = new byte[63];
byte[]kipad = new byte[63];
byte[]pPass = new byte[63];
byte[]dni1 = dni.getBytes();
byte[]resultado = new byte[300];
byte[]resultado1 = new byte[300];
int i, pPassint;


SHA1Digest digest = new SHA1Digest();
Arrays.fill(kopad,(byte)0x00); // lleno de zeros el array
Arrays.fill(Out,(byte)0x00); // lleno de zeros el array
Arrays.fill(kipad, (byte)0x00);// lleno de zeros el array
Arrays.fill(pPass, (byte)0x00);// lleno de zeros el array
pPass = prPass;


dni1[15] = cantidad;
// funcion hmac
for (i=0; i<63;i++){
kopad=(byte) (pPass ^ 0x5c);
kipad=(byte) (pPass ^ 0x36);
}
digest.update(kipad);
digest.update(dni1);

digest.update(kopad);
digest.update(resultado1);

/*
este codigo esta en delphi necesito portarlo al java.. de antemano gracias
procedure my_Sha1(dni:string;prPass:PbyteArray;cantidad:byte;Out_:PbyteArray);
const
size:integer=15;
var
kopad:array[0..63] of byte;
kipad:array[0..63] of byte;
pPass:array[0..63] of byte;
i:integer;
ctx:TSHA1Context;
digest:TSHA1Digest;
dni1:array[0..15] of byte;
begin
//MY SHA1 HASH
FillChar(kopad,Sizeof(kopad),0);
FillChar(kipad,Sizeof(kipad),0);
FillChar(pPass,Sizeof(pPass),0);
Move(prPass^,pPass,16);


for i:=0 to size-1 do
dni1:=strnumber2byte((dni[i+1]));

dni1[15]:=cantidad;

for i:=0 to 63 do
begin
kopad:=pPass xor $5c;
kipad:=pPass xor $36;
end;

//1stPass
SHA1Init(ctx);
SHA1Update(ctx,@kipad[0],64);
Sha1Update(ctx,@dni1[0],16);
SHA1Final(ctx,digest);
//2nd Pass
SHA1Init(ctx);
SHA1Update(ctx,@kopad[0],64);
Sha1Update(ctx,@digest[0],20);
Sha1Final(ctx,digest);
//OUT
move(digest,out_^,20);

end;

*/
return Out;
};
Roger Navarro
Posted Feb 23, 2012 3:18 AM
user 13743835
Celaya, MX
Post #: 53
Send an Email Post a Greeting
No conozco bien la función de php, pero por lo que entiendo quieres cifrar un string y obtener un long del mismo o es otra cosa.

http://supportforums....

saludos.
Freddy Campos
Posted Feb 26, 2012 3:30 AM
user 33095652
Buenos Aires, AR
Post #: 2
Send an Email Post a Greeting
Gracias por responder pero los string los paso a byte para el contexto.

y poder trabajar tranquilo en base a byte ya que el calculo real es apunta de byte

es como trabajar con vectores de arrays pero no se me aclara la mente y usarlos aqui jejejeje
espero me puedan dar una mano..

Gracias por el link me dio otra perspectiva del problema que tengo..

Freddy Campos
Posted Feb 26, 2012 11:06 PM
user 33095652
Buenos Aires, AR
Post #: 3
Send an Email Post a Greeting
necesito algo como esto

void spc_incremental_hmac(unsigned char *key, size_t keylen) {
int i;
HMAC_CTX ctx;
unsigned int len;
unsigned char out[20];

HMAC_Init(&ctx, key, keylen, EVP_sha1( ));
HMAC_Update(&ctx, "fred", 4);
HMAC_Final(&ctx, out, &len);
for (i = 0; i < len; i++) printf("%02x", out);
printf("\n");

HMAC_Init(&ctx, 0, 0, 0);
HMAC_Update(&ctx, "fred", 4);
HMAC_Final(&ctx, out, &len);
for (i = 0; i < len; i++) printf("%02x", out);
printf("\n");
HMAC_cleanup(&ctx); /* Remove key from memory */
}

osea poder crear un cifrado de contexto gracias si pueden ayudarme
Freddy Campos
Posted Mar 11, 2012 12:03 AM
user 33095652
Buenos Aires, AR
Post #: 4
Send an Email Post a Greeting
nadie me da una mano estoy que me rompo el coco... :(
Roger Navarro
Posted Mar 11, 2012 3:05 AM
user 13743835
Celaya, MX
Post #: 61
Send an Email Post a Greeting
¿Que tipo de cifrado quieres hacer?, o ¿cual es tu requerimiento?, no programo en php y no estoy familiarizado con el termino cifrado de contexto, considero que seria bueno que lo explicaras sin entrar muy a detalle a nivel lenguaje especialmente si no es java ya que implica dedicarle un tiempo a interpretarlo y en mi caso no poseo tal tiempo para poder hacer eso, nos seria mas facil si nos explicas tu necesidad abstrayendote de la implementación y enfatizando mas el requerimiento, igual y hay una solución existente sobre lo que necesitas.

saludos.
Freddy Campos
Posted Mar 19, 2012 1:01 PM
user 33095652
Buenos Aires, AR
Post #: 5
Send an Email Post a Greeting
Imaginemos esto tengo varios datos que quiero pasar por comprobación
Para ello existe la funcion hmac

Dato uno (este es el dato uno).
Como toda funcion hmac requiere clave y nos da un resuLtado como ejemplo
Ab4df3e1bafe
Dato dos (este es el dato dos).
Como toda funcion hmac requiere clave y nos da un resuLtado como ejemplo
114df3e1bafe

Ya tengo 2 datos cifrados ahora quiero cifrar los 2 en un solo contexto
Tomando los 2 resultados cifrados
Y crear uno por lo general no mayor a 20 cifras
Luego preciso separas cada bits como si fuera una matrix de datos
Pasarlos a decimal y tomar su primer numero de estos 20 y formar una clave nueva
Todo con hmac - sha1 lo he logrado en delphi pero con java no soy tan diestro gracia
Espero haberme explicado bien
Roger Navarro
Posted Mar 20, 2012 2:19 AM
user 13743835
Celaya, MX
Post #: 65
Send an Email Post a Greeting
Esta perfecto, revisando por ahí llegue a un tutorial para el uso de hmac . sha1, pero igual si lo que requieres es ver una implementación más completa, existe una alternativa a la librería criptográfica de blackberry llamada bouncycastle que existe su versión para j2me y que es usada para aplicaciones en blackberry, igual y si quieres ver como se implementan las funciones desde el código fuente, te podría convenir revisar la librería la cual es open source y puedes descargar el código fuente de la pagina, asi como ejemplos de la misma.

http://www.blackberry...

http://www.bouncycast...

http://jcetaglib.sour...

saludos.
Freddy Campos
Posted Mar 21, 2012 2:01 AM
user 33095652
Buenos Aires, AR
Post #: 6
Send an Email Post a Greeting
Venga amigo muchisimas graciaas. Vere lo que me comentas
Y luego colocare mis resultados os agradezco mucho
Freddy Campos
Posted Apr 17, 2012 11:22 PM
user 33095652
Buenos Aires, AR
Post #: 7
Send an Email Post a Greeting
buenas buenas crees poder darme una manita para implementarlo en eclipse.. Gracias
Powered by mvnForum

Offer a perk for our members and get exposure.

Offer a perk →
People in this
Meetup are also in:

Log in

Not registered with us yet?

Sign up

Meetup members, Log in

or
By clicking the "Sign up using Facebook" or "Sign up" buttons above, you agree to Meetup's Terms of Service