TLSharp/TLSharp.Core/MTProto/Crypto/Salt.cs

60 lines
1.2 KiB
C#
Raw Normal View History

2015-09-28 04:01:17 +02:00
using System;
using System.Collections.Generic;
2016-04-18 12:50:57 +02:00
namespace TLSharp.Core.MTProto.Crypto
{
public class Salt : IComparable<Salt>
{
public Salt(int validSince, int validUntil, ulong salt)
{
2017-04-13 08:38:01 +02:00
ValidSince = validSince;
ValidUntil = validUntil;
Value = salt;
2015-09-28 04:01:17 +02:00
}
2017-04-13 08:38:01 +02:00
public int ValidSince { get; }
2015-09-28 04:01:17 +02:00
2017-04-13 08:38:01 +02:00
public int ValidUntil { get; }
2015-09-28 04:01:17 +02:00
2017-04-13 08:38:01 +02:00
public ulong Value { get; }
2015-09-28 04:01:17 +02:00
2016-04-18 12:50:57 +02:00
public int CompareTo(Salt other)
{
2017-04-13 08:38:01 +02:00
return ValidUntil.CompareTo(other.ValidSince);
2015-09-28 04:01:17 +02:00
}
}
2016-04-18 12:50:57 +02:00
public class SaltCollection
{
private SortedSet<Salt> salts;
2015-09-28 04:01:17 +02:00
2017-04-13 08:38:01 +02:00
public int Count => salts.Count;
2016-04-18 12:50:57 +02:00
public void Add(Salt salt)
{
2015-09-28 04:01:17 +02:00
salts.Add(salt);
}
// TODO: get actual salt and other...
}
2016-04-18 12:50:57 +02:00
public class GetFutureSaltsResponse
{
public GetFutureSaltsResponse(ulong requestId, int now)
{
2017-04-13 08:38:01 +02:00
RequestId = requestId;
Now = now;
2015-09-28 04:01:17 +02:00
}
2017-04-13 08:38:01 +02:00
public ulong RequestId { get; }
2015-09-28 04:01:17 +02:00
2017-04-13 08:38:01 +02:00
public int Now { get; }
2015-09-28 04:01:17 +02:00
2017-04-13 08:38:01 +02:00
public SaltCollection Salts { get; }
2015-09-28 04:01:17 +02:00
2017-04-13 08:38:01 +02:00
public void AddSalt(Salt salt)
2016-04-18 12:50:57 +02:00
{
2017-04-13 08:38:01 +02:00
Salts.Add(salt);
2015-09-28 04:01:17 +02:00
}
}
2017-04-13 08:38:01 +02:00
}