1package org.bouncycastle.asn1.x9;
2
3import java.math.BigInteger;
4
5import org.bouncycastle.math.ec.ECCurve;
6import org.bouncycastle.math.ec.ECFieldElement;
7
8public class X9IntegerConverter
9{
10    public int getByteLength(
11        ECCurve c)
12    {
13        return (c.getFieldSize() + 7) / 8;
14    }
15
16    public int getByteLength(
17        ECFieldElement fe)
18    {
19        return (fe.getFieldSize() + 7) / 8;
20    }
21
22    public byte[] integerToBytes(
23        BigInteger s,
24        int        qLength)
25    {
26        byte[] bytes = s.toByteArray();
27
28        if (qLength < bytes.length)
29        {
30            byte[] tmp = new byte[qLength];
31
32            System.arraycopy(bytes, bytes.length - tmp.length, tmp, 0, tmp.length);
33
34            return tmp;
35        }
36        else if (qLength > bytes.length)
37        {
38            byte[] tmp = new byte[qLength];
39
40            System.arraycopy(bytes, 0, tmp, tmp.length - bytes.length, bytes.length);
41
42            return tmp;
43        }
44
45        return bytes;
46    }
47}
48