package com.subgraph.orchid.directory.downloader;
import java.nio.ByteBuffer;
import java.util.Set;
import com.subgraph.orchid.KeyCertificate;
import com.subgraph.orchid.ConsensusDocument.RequiredCertificate;
import com.subgraph.orchid.directory.parsing.DocumentParser;
public class CertificateFetcher extends DocumentFetcher<KeyCertificate>{
private final Set<RequiredCertificate> requiredCertificates;
public CertificateFetcher(Set<RequiredCertificate> requiredCertificates) {
this.requiredCertificates = requiredCertificates;
}
@Override
String getRequestPath() {
return "/tor/keys/fp-sk/"+ getRequiredCertificatesRequestString();
}
private String getRequiredCertificatesRequestString() {
final StringBuilder sb = new StringBuilder();
for(RequiredCertificate rc: requiredCertificates) {
if(sb.length() > 0) {
sb.append("+");
}
sb.append(rc.getAuthorityIdentity().toString());
sb.append("-");
sb.append(rc.getSigningKey().toString());
}
return sb.toString();
}
@Override
DocumentParser<KeyCertificate> createParser(ByteBuffer response) {
return PARSER_FACTORY.createKeyCertificateParser(response);
}
}