Ejemplo n.º 1
0
        public Result GetNpdm(out Npdm npdm)
        {
            Assert.SdkRequires(_isValid);
            Assert.SdkRequiresEqual(MetaCacheBufferSize, _npdmBuffer.Length);

            if (!_isValid)
            {
                npdm = default;
                return(ResultLoader.InvalidMeta.Log());
            }

            npdm = GetNpdmFromBufferUnsafe(ref MemoryMarshal.GetArrayDataReference(_npdmBuffer));
            return(Result.Success);
        }
Ejemplo n.º 2
0
        public static Result GetNpdmFromBuffer(out Npdm npdm, ReadOnlySpan <byte> npdmBuffer)
        {
            npdm = default;

            int npdmSize = npdmBuffer.Length;

            if (npdmSize > MetaCacheBufferSize)
            {
                return(ResultLoader.TooLargeMeta.Log());
            }

            Result rc = ValidateMeta(npdmBuffer);

            if (rc.IsFailure())
            {
                return(rc);
            }

            ref readonly Meta meta = ref Unsafe.As <byte, Meta>(ref MemoryMarshal.GetReference(npdmBuffer));