// 
// Decompiled by Procyon v0.6.0
// 

package org.bouncycastle.crypto.agreement;

import org.bouncycastle.util.BigIntegers;
import org.bouncycastle.crypto.CipherParameters;
import org.bouncycastle.crypto.BasicAgreement;
import org.bouncycastle.crypto.RawAgreement;

public final class BasicRawAgreement implements RawAgreement
{
    public final BasicAgreement basicAgreement;
    
    public BasicRawAgreement(final BasicAgreement basicAgreement) {
        if (basicAgreement == null) {
            throw new NullPointerException("'basicAgreement' cannot be null");
        }
        this.basicAgreement = basicAgreement;
    }
    
    @Override
    public void init(final CipherParameters cipherParameters) {
        this.basicAgreement.init(cipherParameters);
    }
    
    @Override
    public int getAgreementSize() {
        return this.basicAgreement.getFieldSize();
    }
    
    @Override
    public void calculateAgreement(final CipherParameters cipherParameters, final byte[] array, final int n) {
        BigIntegers.asUnsignedByteArray(this.basicAgreement.calculateAgreement(cipherParameters), array, n, this.getAgreementSize());
    }
}
