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

95 lines
1.8 KiB
C#
Raw Normal View History

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