public MD(MDType type) { EVP_MD * md = null; // Statically allocated (MT), don't free EVP_MD_CTX *handle = null; if ((md = MD.GetMD(type)) == null) { throw new EVPException(); } if ((handle = _MD.EVP_MD_CTX_create()) == null) { goto Bailout; } if (_MD.EVP_DigestInit_ex(handle, md, IntPtr.Zero) == 0) { goto Bailout; } this._handle = handle; this._type = type; return; Bailout: if (handle != null) { _MD.EVP_MD_CTX_destroy(handle); } throw new EVPException(); }
public HMAC(MDType type) { this._type = type; this._md = MD.GetMD(this._type); if (this._md == null) { throw new EVPException(); } }
public static MDType GetMDRR() { var server = ServerTest.GetServer(); var zone = ZoneTest.GetZone(); var record = zone.GetRecords().FirstOrDefault(i => i.OwnerName == "md." + zone.Name); if (record == null) { record = MDType.CreateInstanceFromPropertyData(server, server.Name, zone.Name, "md." + zone.Name, DNSManagement.RR.ResourceRecord.RecordClassEnum.IN, null, "mdhost"); } return((MDType)record.UnderlyingRecord); }
internal static EVP_MD *GetMD(MDType type) { switch (type) { case MDType.MD5: return(_MD.EVP_md5()); case MDType.SHA1: return(_MD.EVP_sha1()); case MDType.SHA256: return(_MD.EVP_sha256()); case MDType.SHA384: return(_MD.EVP_sha384()); case MDType.SHA512: return(_MD.EVP_sha512()); } return(null); }
internal static EVP_MD* GetMD(MDType type) { switch (type) { case MDType.MD5 : return _MD.EVP_md5 (); case MDType.SHA1 : return _MD.EVP_sha1 (); case MDType.SHA256: return _MD.EVP_sha256(); case MDType.SHA384: return _MD.EVP_sha384(); case MDType.SHA512: return _MD.EVP_sha512(); } return null; }
public HMAC(MDType type) { this._type = type; this._md = MD.GetMD(this._type); if (this._md == null) throw new EVPException(); }
public MD(MDType type) { EVP_MD* md = null; // Statically allocated (MT), don't free EVP_MD_CTX* handle = null; if ((md = MD.GetMD(type)) == null) throw new EVPException(); if ((handle = _MD.EVP_MD_CTX_create()) == null) goto Bailout; if (_MD.EVP_DigestInit_ex(handle, md, IntPtr.Zero) == 0) goto Bailout; this._handle = handle; this._type = type; return ; Bailout: if (handle != null) _MD.EVP_MD_CTX_destroy(handle); throw new EVPException(); }
private void DumpFields(ulong Address, ClrType type = null) { StartRuntime(); ClrType obj; if (type == null) { obj = m_heap.GetObjectType(Address); } else { obj = type; } if (cache == null) { cache = new HeapCache(m_runtime, ShowProgress); } MDType tp = new MDType(obj); MD_TypeData data; tp.GetHeader(Address, out data); int count = 0; tp.GetAllFieldsDataRawCount(out count); int temp = 0; MD_FieldData[] fields = new MD_FieldData[count]; tp.GetAllFieldsDataRaw(data.isValueType ? 1 : 0, count, fields, out temp); for (int i = 0; i < count; i++) { string typeName; string Name; tp.GetRawFieldTypeAndName(i, out typeName, out Name); MD_TypeData fd; ClrType ftp = AdHoc.GetTypeFromMT(m_runtime, fields[i].MethodTable); MDType ft = new MDType(ftp); ulong pointer = 0; tp.GetRawFieldAddress(Address, data.isValueType ? 1 : 0, i, out pointer); if (fields[i].isValueType) { ft.GetHeader(pointer, out fd); } else { ft.GetHeader(ReadPointer(pointer), out fd); } Write("{0:x16} {1:x4} {5:x16} {6} +{2:x4} {3,30} {4,30} {7} ", fd.module, fd.token, fields[i].offset, TrimRight(typeName, 30), Name, data.MethodTable, fields[i].isThreadStatic ? " thread " : fields[i].isStatic ? " Static " : " ", fields[i].isEnum ? AdHoc.GetEnumName(ftp, ReadPointer(pointer) & (fd.size == 4 ? 0x0000FFFF : ulong.MaxValue)) : "" /*cache.GetFieldValue(Address, Name, obj)*/); ulong effAddress = pointer; if (fd.isValueType) { if (fields[i].isEnum) { WriteLine(""); continue; } try { WriteLine("{0}", ftp.GetValue(pointer)); } catch { WriteLine("{0}", ReadPointer(pointer) & (fd.size == 4 ? 0xFFFFFFFF : fd.size == 8 ? 0x00000000FFFFFFFF : ulong.MaxValue)); } continue; } else { if (pointer != 0) { effAddress = ReadPointer(pointer); } Write("({0:x16}) ", effAddress); if (effAddress == 0) { WriteLine(""); continue; } if (fd.isString) { string str; tp.GetString(effAddress, out str); Write("{0}", str); } WriteLine(""); } } /* * var fields = * from f in obj.Fields * orderby f.Offset * select f; * * foreach (var field in fields) * { * WriteLine("{0:x16} {1:x4} +{2:x4} {3,30} {4,30}", field.Type.Module.AssemblyId, * field.Type.MetadataToken, field.Offset, TrimRight(field.Type.Name, 30), field.Name); * * * } * if (obj.StaticFields.Count > 0) * { * var statFields = * from s in obj.StaticFields * orderby s.Offset * select s; * WriteLine("Static Fields:"); * foreach (var field in statFields) * { * WriteLine("{0:x16} {1:x4} +{2:x4} {3,30} {4,30}", field.Type.Module.AssemblyId, * field.Type.MetadataToken, field.Offset, TrimRight(field.Type.Name, 30), field.Name); * } * } * if (obj.ThreadStaticFields.Count > 0) * { * var threadFields = * from t in obj.ThreadStaticFields * orderby t.Offset * select t; * WriteLine("Thread Static Fields:"); * foreach (var field in threadFields) * { * WriteLine("{0:x16} {1:x4} +{2:x4} {3,30} {4,30}", field.Type.Module.AssemblyId, * field.Type.MetadataToken, field.Offset, TrimRight(field.Type.Name, 30), field.Name); * } * * } */ }