in src/ecp.js [1356:1400]
ECP.fromBytes = function(b) {
var t = [],
P = new ECP(),
p = new ctx.BIG(0),
px, py, i;
p.rcopy(ctx.ROM_FIELD.Modulus);
for (i = 0; i < ctx.BIG.MODBYTES; i++) {
t[i] = b[i + 1];
}
px = ctx.BIG.fromBytes(t);
if (ctx.BIG.comp(px, p) >= 0) {
return P;
}
if (ECP.CURVETYPE == ECP.MONTGOMERY) {
P.setx(px);
return P;
}
if (b[0] == 0x04) {
for (i = 0; i < ctx.BIG.MODBYTES; i++) {
t[i] = b[i + ctx.BIG.MODBYTES + 1];
}
py = ctx.BIG.fromBytes(t);
if (ctx.BIG.comp(py, p) >= 0) {
return P;
}
P.setxy(px, py);
return P;
}
if (b[0]==0x02 || b[0]==0x03) {
P.setxi(px,b[0]&1);
return P;
}
return P;
};