Example usage for org.bouncycastle.util Strings toUTF8ByteArray

List of usage examples for org.bouncycastle.util Strings toUTF8ByteArray

Introduction

In this page you can find the example usage for org.bouncycastle.util Strings toUTF8ByteArray.

Prototype

public static byte[] toUTF8ByteArray(char[] string) 

Source Link

Usage

From source file:net.sportics.dni.rt.client.microedition.net.SrtsApi.java

License:Open Source License

final String encodePassword(final String sid, final String password) {
    try {/*from   w ww .  ja  v  a  2  s .  c o m*/
        final Digest digester = new SHA256Digest();
        final byte[] asArray = Strings.toUTF8ByteArray(password);
        digester.update(asArray, 0, asArray.length);
        final int length = digester.getDigestSize();
        final byte[] digest = new byte[length];
        digester.doFinal(digest, 0);
        final byte[] hex = Hex.encode(digest);
        final String hexString = new String(hex, USASCII_ENC);
        final String auth = sid + ":" + hexString;
        LOG.debug("pwd as auth: " + auth);
        final byte[] asBytes = auth.getBytes(USASCII_ENC);
        final byte[] base64 = Base64.encode(asBytes);
        final String base64String = new String(base64, USASCII_ENC);
        LOG.debug("auth as base64: " + base64String);
        return base64String;
    } catch (final UnsupportedEncodingException e) {
        throw new RuntimeException("Unsupported encoding US-ASCII");
    }
}

From source file:org.sufficientlysecure.keychain.linked.UriAttribute.java

License:Open Source License

public byte[] getEncoded() {
    return Strings.toUTF8ByteArray(mUri.toASCIIString());
}

From source file:org.sufficientlysecure.keychain.pgp.UncachedKeyringCanonicalizeTest.java

License:Open Source License

@Test
public void testUidSignature() throws Exception {

    UncachedPublicKey masterKey = ring.getPublicKey();
    final WrappedSignature sig = masterKey.getSignaturesForRawId(Strings.toUTF8ByteArray("twi")).next();

    byte[] raw = sig.getEncoded();
    // destroy the signature
    raw[raw.length - 5] += 1;//from  w w  w  .  java2  s . com
    final WrappedSignature brokenSig = WrappedSignature.fromBytes(raw);

    { // bad certificates get stripped
        UncachedKeyRing modified = KeyringTestingHelper.injectPacket(ring, brokenSig.getEncoded(), 3);
        CanonicalizedKeyRing canonicalized = modified.canonicalize(log, 0);

        Assert.assertTrue("canonicalized keyring with invalid extra sig must be same as original one",
                !KeyringTestingHelper.diffKeyrings(ring.getEncoded(), canonicalized.getEncoded(), onlyA,
                        onlyB));
    }

    // remove user id certificate for one user
    final UncachedKeyRing base = KeyringTestingHelper.removePacket(ring, 2);

    { // user id without certificate should be removed
        CanonicalizedKeyRing modified = base.canonicalize(log, 0);
        Assert.assertTrue("canonicalized keyring must differ",
                KeyringTestingHelper.diffKeyrings(ring.getEncoded(), modified.getEncoded(), onlyA, onlyB));

        Assert.assertEquals("two packets should be stripped after canonicalization", 2, onlyA.size());
        Assert.assertEquals("no new packets after canonicalization", 0, onlyB.size());

        Packet p = new BCPGInputStream(new ByteArrayInputStream(onlyA.get(0).buf)).readPacket();
        Assert.assertTrue("first stripped packet must be user id", p instanceof UserIDPacket);
        Assert.assertEquals("missing user id must be the expected one", "twi", ((UserIDPacket) p).getID());

        Assert.assertArrayEquals("second stripped packet must be signature we removed", sig.getEncoded(),
                onlyA.get(1).buf);

    }

    { // add error to signature

        UncachedKeyRing modified = KeyringTestingHelper.injectPacket(base, brokenSig.getEncoded(), 3);
        CanonicalizedKeyRing canonicalized = modified.canonicalize(log, 0);

        Assert.assertTrue("canonicalized keyring must differ",
                KeyringTestingHelper.diffKeyrings(ring.getEncoded(), canonicalized.getEncoded(), onlyA, onlyB));

        Assert.assertEquals("two packets should be missing after canonicalization", 2, onlyA.size());
        Assert.assertEquals("no new packets after canonicalization", 0, onlyB.size());

        Packet p = new BCPGInputStream(new ByteArrayInputStream(onlyA.get(0).buf)).readPacket();
        Assert.assertTrue("first stripped packet must be user id", p instanceof UserIDPacket);
        Assert.assertEquals("missing user id must be the expected one", "twi", ((UserIDPacket) p).getID());

        Assert.assertArrayEquals("second stripped packet must be signature we removed", sig.getEncoded(),
                onlyA.get(1).buf);
    }

}

From source file:org.sufficientlysecure.keychain.pgp.UncachedKeyringMergeTest.java

License:Open Source License

@Test
public void testAddedUserIdSignature() throws Exception {

    final UncachedKeyRing pubRing = ringA.extractPublicKeyRing();

    final UncachedKeyRing modified;
    {//ww  w.  j a  v  a2 s .  c  o  m
        CanonicalizedPublicKeyRing publicRing = new CanonicalizedPublicKeyRing(pubRing.getEncoded(), 0);

        CanonicalizedSecretKey secretKey = new CanonicalizedSecretKeyRing(ringB.getEncoded(), false, 0)
                .getSecretKey();
        secretKey.unlock(new Passphrase());
        PgpCertifyOperation op = new PgpCertifyOperation();
        CertifyAction action = new CertifyAction(pubRing.getMasterKeyId(),
                publicRing.getPublicKey().getUnorderedUserIds(), null);
        // sign all user ids
        PgpCertifyResult result = op.certify(secretKey, publicRing, new OperationLog(), 0, action, null,
                new Date());
        Assert.assertTrue("certification must succeed", result.success());
        Assert.assertNotNull("certification must yield result", result.getCertifiedRing());
        modified = result.getCertifiedRing();
    }

    {
        UncachedKeyRing merged = ringA.merge(modified, log, 0);
        Assert.assertNotNull("merge must succeed", merged);
        Assert.assertArrayEquals("foreign signatures should not be merged into secret key", ringA.getEncoded(),
                merged.getEncoded());
    }

    {
        byte[] sig = KeyringTestingHelper
                .getNth(modified.getPublicKey().getSignaturesForRawId(Strings.toUTF8ByteArray("twi")), 1)
                .getEncoded();

        // inject the (foreign!) signature into subkey signature position
        UncachedKeyRing moreModified = KeyringTestingHelper.injectPacket(modified, sig, 1);

        UncachedKeyRing merged = ringA.merge(moreModified, log, 0);
        Assert.assertNotNull("merge must succeed", merged);
        Assert.assertArrayEquals("foreign signatures should not be merged into secret key", ringA.getEncoded(),
                merged.getEncoded());

        merged = pubRing.merge(moreModified, log, 0);
        Assert.assertNotNull("merge must succeed", merged);
        Assert.assertTrue("merged keyring should contain new signature",
                KeyringTestingHelper.diffKeyrings(pubRing.getEncoded(), merged.getEncoded(), onlyA, onlyB));
        Assert.assertEquals("merged keyring should be missing no packets", 0, onlyA.size());
        Assert.assertEquals("merged keyring should contain exactly two more packets", 2, onlyB.size());
        Assert.assertEquals("first added packet should be a signature", PacketTags.SIGNATURE, onlyB.get(0).tag);
        Assert.assertEquals("first added packet should be in the position we injected it at", 1,
                onlyB.get(0).position);
        Assert.assertEquals("second added packet should be a signature", PacketTags.SIGNATURE,
                onlyB.get(1).tag);

    }

    {
        UncachedKeyRing merged = pubRing.merge(modified, log, 0);
        Assert.assertNotNull("merge must succeed", merged);
        Assert.assertFalse("merging keyring with extra signatures into its base should yield that same keyring",
                KeyringTestingHelper.diffKeyrings(merged.getEncoded(), modified.getEncoded(), onlyA, onlyB));
    }
}