Search in sources :

Example 1 with Digest

use of org.xwiki.crypto.Digest in project xwiki-platform by xwiki.

the class SignedMacroBlockReferenceResolverTest method setUp.

@Before
public void setUp() throws Exception {
    DigestFactory digestFactory = mocker.getInstance(DigestFactory.class, "SHA-1");
    BinaryStringEncoder encoder = mocker.getInstance(BinaryStringEncoder.class, "Base64");
    dumper = mocker.getInstance(BlockDumper.class, "macro");
    Digest digest = mock(Digest.class);
    stream = new ByteArrayOutputStream();
    when(digest.getOutputStream()).thenReturn(stream);
    when(digest.digest()).thenReturn(DIGEST_BLOCK);
    when(digestFactory.getInstance()).thenReturn(digest);
    when(encoder.encode(DIGEST_BLOCK)).thenReturn(ENCODED);
}
Also used : BinaryStringEncoder(org.xwiki.crypto.BinaryStringEncoder) DigestFactory(org.xwiki.crypto.DigestFactory) BlockDumper(org.xwiki.rendering.signature.internal.BlockDumper) Digest(org.xwiki.crypto.Digest) ByteArrayOutputStream(java.io.ByteArrayOutputStream) Before(org.junit.Before)

Example 2 with Digest

use of org.xwiki.crypto.Digest in project xwiki-platform by xwiki.

the class SignedMacroBlockReferenceResolver method resolve.

/**
 * {@inheritDoc}
 *
 * This implementation is specific for macro blocks. The block argument could be either
 * a {@link org.xwiki.rendering.block.MacroBlock} or a {@link org.xwiki.rendering.block.MacroMarkerBlock}.
 */
@Override
public BlockReference resolve(Block block, Object... parameters) {
    EntityReference parent = null;
    if (parameters.length > 0 && parameters[0] instanceof EntityReference) {
        // Try to extract the type from the passed parameter.
        parent = (EntityReference) parameters[0];
    }
    Digest digest = digestFactory.getInstance();
    try {
        dumper.dump(digest.getOutputStream(), block);
        return new BlockReference(new EntityReference(encoder.encode(digest.digest()), EntityType.BLOCK, parent));
    } catch (IOException ignore) {
    // Ignored
    }
    return null;
}
Also used : BlockReference(org.xwiki.model.reference.BlockReference) Digest(org.xwiki.crypto.Digest) EntityReference(org.xwiki.model.reference.EntityReference) IOException(java.io.IOException)

Aggregations

Digest (org.xwiki.crypto.Digest)2 ByteArrayOutputStream (java.io.ByteArrayOutputStream)1 IOException (java.io.IOException)1 Before (org.junit.Before)1 BinaryStringEncoder (org.xwiki.crypto.BinaryStringEncoder)1 DigestFactory (org.xwiki.crypto.DigestFactory)1 BlockReference (org.xwiki.model.reference.BlockReference)1 EntityReference (org.xwiki.model.reference.EntityReference)1 BlockDumper (org.xwiki.rendering.signature.internal.BlockDumper)1