예제 #1
0
        private Result ValidateServiceName(ServiceName name)
        {
            // Service names must be non-empty.
            if (name.Name == 0)
            {
                return(ResultSm.InvalidServiceName.Log());
            }

            // Get name length.
            int nameLen;

            for (nameLen = 1; nameLen < Unsafe.SizeOf <ServiceName>(); nameLen++)
            {
                if (SpanHelpers.AsReadOnlyByteSpan(ref name)[nameLen] == 0)
                {
                    break;
                }
            }

            // Names must be all-zero after they end.
            for (; nameLen < Unsafe.SizeOf <ServiceName>(); nameLen++)
            {
                if (SpanHelpers.AsReadOnlyByteSpan(ref name)[nameLen] != 0)
                {
                    return(ResultSm.InvalidServiceName.Log());
                }
            }

            return(Result.Success);
        }
예제 #2
0
        private static string Print(this AesXtsFile xtsFile, int contentType)
        {
            int colLen = 36;
            var sb     = new StringBuilder();

            sb.AppendLine();

            sb.AppendLine("NAX0:");

            AesXtsFileHeader header = xtsFile.Header;
            uint             magic  = header.Magic;

            PrintItem(sb, colLen, "    Magic:", Util.GetUtf8String(SpanHelpers.AsReadOnlyByteSpan(ref magic)));
            PrintItem(sb, colLen, "    Content Type:", GetContentType(contentType));
            PrintItem(sb, colLen, "    Content Size:", $"{header.Size:x12}");
            PrintItem(sb, colLen, "    Header HMAC:", header.Signature);
            PrintItem(sb, colLen, "    Encrypted Keys:", header.EncryptedKey1.Concat(header.EncryptedKey2).ToArray());
            PrintItem(sb, colLen, "    Decrypted Keys:", header.DecryptedKey1.Concat(header.DecryptedKey2).ToArray());

            return(sb.ToString());
        }
예제 #3
0
        public override string ToString()
        {
            ulong name = Name;

            return(StringUtils.Utf8ZToString(SpanHelpers.AsReadOnlyByteSpan(ref name)));
        }