using System;
using Top.Api.Util;
namespace Top.Api.Security
{
    public class SecretContext : SecurityConstants
    {
        /// 
        ///  秘钥
        /// 
        public byte[] Secret { get; set; }
        /// 
        /// 秘钥版本
        /// 
        public Nullable SecretVersion { get; set; }
        /// 
        /// 过期时间,单位(毫秒)
        /// 
        public long InvalidTime { get; set; }
        /// 
        /// 最长有效期,单位(毫秒)
        /// 
        public long MaxInvalidTime { get; set; }
        /// 
        /// 判断是否过期
        /// 
        /// 
        public bool IsValid()
        {
            return InvalidTime > TopUtils.GetCurrentTimeMillis();
        }
        /// 
        /// 容灾,调用api获取秘钥可能会失败,在失败情况下最长有效期
        /// 
        /// 
        public bool IsMaxValid()
        {
            return MaxInvalidTime > TopUtils.GetCurrentTimeMillis();
        }
    }
}