use of com.github.zhenwei.core.asn1.ASN1Object in project SpringRemote by HaleyWang.
the class PKCS12KeyStore method getAttribute.
private String getAttribute(SafeBag safeBag, String attrType) {
int cnt = safeBag.bagAttributes.getCount();
String value = null;
for (int i = 0; i < cnt; i++) {
Attribute a = (Attribute) safeBag.bagAttributes.getComponent(i);
if (attrType.equals(a.type.getString())) {
ASN1Object v = a.values.getComponent(0);
if (v instanceof ASN1CharString) {
value = ((ASN1CharString) v).getValue();
} else if (v instanceof ASN1OctetString) {
value = HexDump.toString(((ASN1OctetString) v).getRaw());
} else {
value = v.toString();
}
}
}
return value;
}
use of com.github.zhenwei.core.asn1.ASN1Object in project titan.EclipsePlug-ins by eclipse.
the class Undefined_FieldSpecification method classifyFieldSpecification.
private void classifyFieldSpecification(final CompilationTimeStamp timestamp) {
final IReferenceChain temporalReferenceChain = ReferenceChain.getInstance(IReferenceChain.CIRCULARREFERENCE, true);
if (isOptional && (null != defaultSetting1 || null != mDefaultSetting)) {
location.reportSemanticError("OPTIONAL and DEFAULT are mutually exclusive");
isOptional = false;
}
if (temporalReferenceChain.add(this) && null != governorReference) {
governorReference.setMyScope(myObjectClass.getMyScope());
if (null != defaultSetting1) {
defaultSetting1.setMyScope(myObjectClass.getMyScope());
}
if (identifier.isvalidAsnObjectSetFieldReference() && governorReference.refersToSettingType(timestamp, Setting_type.S_OC, temporalReferenceChain)) {
ObjectSet defaultObjectset = null;
if (null != mDefaultSetting) {
defaultObjectset = new ObjectSet_definition(mDefaultSetting);
}
final ObjectClass_refd oc = new ObjectClass_refd(governorReference);
oc.setLocation(governorReference.getLocation());
fieldSpecification = new ObjectSet_FieldSpecification(identifier, oc, isOptional, defaultObjectset);
} else if (identifier.isvalidAsnObjectFieldReference() && governorReference.refersToSettingType(timestamp, Setting_type.S_OC, temporalReferenceChain)) {
ASN1Object defaultObject = null;
if (null != defaultSetting1) {
defaultObject = new ReferencedObject(defaultSetting1);
} else if (null != mDefaultSetting) {
defaultObject = new Object_Definition(mDefaultSetting);
}
fieldSpecification = new Object_FieldSpecification(identifier, new ObjectClass_refd(governorReference), isOptional, defaultObject);
} else if (identifier.isvalidAsnValueFieldReference() && (governorReference.refersToSettingType(timestamp, Setting_type.S_T, temporalReferenceChain) || governorReference.refersToSettingType(timestamp, Setting_type.S_VS, temporalReferenceChain))) {
IValue defaultValue = null;
if (null != defaultSetting1) {
if (defaultSetting1 instanceof Defined_Reference && null == defaultSetting1.getModuleIdentifier()) {
defaultValue = new Undefined_LowerIdentifier_Value(defaultSetting1.getId().newInstance());
} else {
defaultValue = new Referenced_Value(defaultSetting1);
}
} else if (null != mDefaultSetting) {
defaultValue = new Undefined_Block_Value(mDefaultSetting);
}
fieldSpecification = new FixedTypeValue_FieldSpecification(identifier, new Referenced_Type(governorReference), false, isOptional, null != defaultSetting1 && null != mDefaultSetting, defaultValue);
}
}
if (null == fieldSpecification) {
location.reportSemanticError(CANNOTRECOGNISE);
fieldSpecification = new Erroneous_FieldSpecification(identifier, isOptional, null != defaultSetting1 || null != mDefaultSetting);
} else {
if (null != myObjectClass) {
fieldSpecification.setMyObjectClass(myObjectClass);
}
}
fieldSpecification.setFullNameParent(getNameParent());
fieldSpecification.setLocation(location);
temporalReferenceChain.release();
}
use of com.github.zhenwei.core.asn1.ASN1Object in project titan.EclipsePlug-ins by eclipse.
the class ObjectClassSyntax_Parser method parseObject.
private ASN1Object parseObject() {
ASN1Object object = null;
if (mBlock != null) {
final Asn1Parser parser = BlockLevelTokenStreamTracker.getASN1ParserForBlock(mBlock, internalIndex);
if (parser != null) {
object = parser.pr_special_Object().object;
internalIndex += parser.nof_consumed_tokens();
final List<SyntacticErrorStorage> errors = parser.getErrorStorage();
if (null != errors && !errors.isEmpty()) {
for (int i = 0; i < errors.size(); i++) {
ParserMarkerSupport.createOnTheFlyMixedMarker((IFile) mBlock.getLocation().getFile(), errors.get(i), IMarker.SEVERITY_ERROR);
}
}
}
}
return object;
}
use of com.github.zhenwei.core.asn1.ASN1Object in project titan.EclipsePlug-ins by eclipse.
the class ReferencedObject method getRefdLast.
/**
* Returns the ASN.1 object referred last on the chain of references.
*
* @param timestamp
* the time stamp of the actual semantic check cycle.
*
* @return the ASN.1 object referred last on the chain of references.
*/
public Object_Definition getRefdLast(final CompilationTimeStamp timestamp) {
final IReferenceChain referenceChain = ReferenceChain.getInstance(CIRCULAROBJECTREFERENCE, true);
ASN1Object object = this;
while (object instanceof ReferencedObject && !object.getIsErroneous(timestamp)) {
object = ((ReferencedObject) object).getRefd(timestamp, referenceChain);
}
referenceChain.release();
return (Object_Definition) object;
}
Aggregations