Skip to content

Instantly share code, notes, and snippets.

@WitherOrNot
Last active May 4, 2025 17:46
Show Gist options
  • Save WitherOrNot/c34c4c7b893e89ab849ce04e007d89a9 to your computer and use it in GitHub Desktop.
Save WitherOrNot/c34c4c7b893e89ab849ce04e007d89a9 to your computer and use it in GitHub Desktop.
Terminal Services License Server ID + License Key Pack generator
from Crypto.Cipher import ARC4
from hashlib import sha1, md5
from random import randint
from ecutils.core import Point, EllipticCurve
from sys import argv
KCHARS = "BCDFGHJKMPQRTVWXY2346789"
SPK_ECKEY = {
"a": 1,
"b": 0,
"g": {
"x": 10692194187797070010417373067833672857716423048889432566885309624149667762706899929433420143814127803064297378514651,
"y": 14587399915883137990539191966406864676102477026583239850923355829082059124877792299572208431243410905713755917185109
},
"n": 629063109922370885449,
"p": 21782971228112002125810473336838725345308036616026120243639513697227789232461459408261967852943809534324870610618161,
"priv": 153862071918555979944,
"pub": {
"x": 3917395608307488535457389605368226854270150445881753750395461980792533894109091921400661704941484971683063487980768,
"y": 8858262671783403684463979458475735219807686373661776500155868309933327116988404547349319879900761946444470688332645
}
}
LKP_ECKEY = {
"a": 1,
"b": 0,
"g": {
"x": 18999816458520350299014628291870504329073391058325678653840191278128672378485029664052827205905352913351648904170809,
"y": 7233699725243644729688547165924232430035643592445942846958231777803539836627943189850381859836033366776176689124317
},
"n": 675048016158598417213,
"p": 28688293616765795404141427476803815352899912533728694325464374376776313457785622361119232589082131818578591461837297,
"priv": 100266970209474387075,
"pub": {
"x": 7147768390112741602848314103078506234267895391544114241891627778383312460777957307647946308927283757886117119137500,
"y": 20525272195909974311677173484301099561025532568381820845650748498800315498040161314197178524020516408371544778243934
}
}
def encode_pkey(n):
out = ""
while n > 0:
out = KCHARS[n % 24] + out
n //= 24
out = "-".join([out[i:i+5] for i in range(0, len(out), 5)])
return out
def decode_pkey(k):
k = k.replace("-", "")
out = 0
for c in k:
out *= 24
out += KCHARS.index(c)
return out
def int_to_bytes(n, l=None):
n = int(n)
if not l:
l = (n.bit_length() + 7) // 8
return n.to_bytes(l, byteorder="little")
def make_curve(curve_def):
G = Point(x=curve_def["g"]["x"], y=curve_def["g"]["y"])
K = Point(x=curve_def["pub"]["x"], y=curve_def["pub"]["y"])
E = EllipticCurve(p=curve_def["p"], a=curve_def["a"], b=curve_def["b"], G=G, n=curve_def["n"], h=1)
return E, G, K
def get_spkid(pid):
spkid_s = pid[10:16] + pid[18:23]
return int(spkid_s.split("-")[0])
def validate_tskey(pid, tskey, is_spk=True):
keydata = decode_pkey(tskey).to_bytes(21, "little")
rk = md5(pid.encode("utf-16-le")).digest()[:5] + b"\x00" * 11
c = ARC4.new(rk)
dc_kdata = c.decrypt(keydata)
keydata = dc_kdata[:7]
sigdata = int.from_bytes(dc_kdata[7:], "little")
h = sigdata & 0x7ffffffff
s = (sigdata >> 35) & 0x1fffffffffffffffff
params = SPK_ECKEY if is_spk else LKP_ECKEY
E, G, K = make_curve(params)
R = E.add_points(E.multiply_point(h, K), E.multiply_point(s, G))
md = sha1(keydata + int_to_bytes(R.x, 48) + int_to_bytes(R.y, 48)).digest()
ht = ((int.from_bytes(md[4:8], "little") >> 29) << 32) | (int.from_bytes(md[:4], "little"))
spkid = int.from_bytes(keydata, "little") & 0x1FFFFFFFFF
return h == ht and (not is_spk or spkid == get_spkid(pid))
def generate_tskey(pid, keydata, is_spk=True):
params = SPK_ECKEY if is_spk else LKP_ECKEY
priv = SPK_ECKEY["priv"] if is_spk else LKP_ECKEY["priv"]
E, G, K = make_curve(params)
s = 0
while True:
c = randint(1, E.n - 1)
R = E.multiply_point(c, G)
md = sha1(keydata + int_to_bytes(R.x, 48) + int_to_bytes(R.y, 48)).digest()
h = ((int.from_bytes(md[4:8], "little") >> 29) << 32) | (int.from_bytes(md[:4], "little"))
s = ((-priv * h + c) % E.n) & 0x1fffffffffffffffff
keyinf = int.from_bytes(keydata, "little")
pkdata = ((s << 91) | (h << 56) | keyinf).to_bytes(21, "little")
rk = md5(pid.encode("utf-16-le")).digest()[:5] + b"\x00" * 11
c = ARC4.new(rk)
pke = c.encrypt(pkdata)[:20]
pk = int.from_bytes(pke, "little")
pkstr = encode_pkey(pk)
if s < 0x1fffffffffffffff and validate_tskey(pid, pkstr, is_spk):
return pkstr
def generate_spk(pid):
spkid = get_spkid(pid)
spkdata = spkid.to_bytes(7, "little")
return generate_tskey(pid, spkdata)
def generate_lkp(pid, count, major_ver, minor_ver, chid):
version = 1
if (major_ver == 5 and minor_ver > 0) or major_ver > 5:
version = (major_ver << 3) | minor_ver
lkpinfo = (chid << 46) | (count << 32) | (2 << 18) | (144 << 10) | (version << 3)
lkpdata = lkpinfo.to_bytes(7, "little")
return generate_tskey(pid, lkpdata, False)
if __name__ == "__main__":
if len(argv) == 2:
pid = argv[1]
print(f"License Server ID: {generate_spk(pid)}")
elif len(argv) == 5:
pid = argv[1]
count = int(argv[2])
ver_major, ver_minor = map(int, argv[3].split("."))
chid = int(argv[4])
print(f"License Key Pack ID: {generate_lkp(pid, count, ver_major, ver_minor, chid)}")
else:
print(f"Usage: {argv[0]} <pid> [<count> <version> <chid>]")
print(f"Example: {argv[0]} 00490-92005-99454-AT527 1234 10.3 32")
<TlsBrandingVersions>
<!-- Array of OSVersionStr objects from lsdata.h -->
<OSVersions>
<OSVersion OSVersionID="0x50000" OSVerResourceID="40001" FeatureMask="0">WIN_2000_OS_VERSION, IDS_LICBRAND_CAL_OS_VERSION_W2K</OSVersion>
<OSVersion OSVersionID="0x50002" OSVerResourceID="40002" FeatureMask="0">WIN_2003_OS_VERSION, IDS_LICBRAND_CAL_OS_VERSION_W2K3</OSVersion>
<OSVersion OSVersionID="0x60000" OSVerResourceID="40003" FeatureMask="0">WIN_2008_OS_VERSION, IDS_LICBRAND_OS_VERSION_W2K8</OSVersion>
<OSVersion OSVersionID="0x60001" OSVerResourceID="40007" FeatureMask="0">WIN_2008_R2_OS_VERSION, IDS_LICBRAND_CAL_OS_VERSION_W2K8R2</OSVersion>
<OSVersion OSVersionID="0x60002" OSVerResourceID="40008" FeatureMask="0">WIND8WS_OS_VERSION, IDS_LICBRAND_CAL_OS_VERSION_WIN8</OSVersion>
<OSVersion OSVersionID="0x60003" OSVerResourceID="40009" FeatureMask="0">WIND8WS_R2_OS_VERSION, IDS_LICBRAND_CAL_OS_VERSION_WIN8R2</OSVersion>
<OSVersion OSVersionID="0xA0000" OSVerResourceID="40010" FeatureMask="0">WIN_THRESHOLD_OS_VERSION, IDS_LICBRAND_CAL_OS_VERSION_THRESHOLD</OSVersion>
<OSVersion OSVersionID="0xA0001" OSVerResourceID="40011" FeatureMask="15">WIN_2019_OS_VERSION, IDS_LICBRAND_CAL_OS_VERSION_2019</OSVersion>
<OSVersion OSVersionID="0xA0002" OSVerResourceID="40012" FeatureMask="16">WIN_2022_OS_VERSION, IDS_LICBRAND_CAL_OS_VERSION_2022</OSVersion>
<OSVersion OSVersionID="0xA0003" OSVerResourceID="40013" FeatureMask="16">WIN_2025_OS_VERSION, IDS_LICBRAND_CAL_OS_VERSION_2025</OSVersion>
</OSVersions>
<!-- Array of OSVersionToCalVersion objects from lsdata.h -->
<OSToCALVersions>
<OSToCALVersion OSVersionID="0x60001" CALVersionID="0x60000">CAL versions are same for both 2K8 and 2K8R2</OSToCALVersion>
<OSToCALVersion OSVersionID="0x60003" CALVersionID="0x60002">CAL versions are same for both 2K12 and 2K12R2</OSToCALVersion>
</OSToCALVersions>
<!-- Array of WMIProductVersion objects from lsdata.h -->
<WMIProductVersions>
<WMIProductVersion WMIVersionID="0" WMICALVersion="0x50000" WMICALVerResourceID="40001">WIN_2000_CAL_VERSION, IDS_LICBRAND_CAL_OS_VERSION_W2K</WMIProductVersion>
<WMIProductVersion WMIVersionID="1" WMICALVersion="0x50002" WMICALVerResourceID="40002">WIN_2003_CAL_VERSION, IDS_LICBRAND_CAL_OS_VERSION_W2K3</WMIProductVersion>
<WMIProductVersion WMIVersionID="2" WMICALVersion="0x60000" WMICALVerResourceID="40006">WIN_2008_AND_R2_CAL_VERSION, IDS_LICBRAND_CAL_VERSION_W2K8_W2K8R2</WMIProductVersion>
<WMIProductVersion WMIVersionID="4" WMICALVersion="0x60002" WMICALVerResourceID="40008">WIND8WS_CAL_VERSION, IDS_LICBRAND_CAL_OS_VERSION_WIN8</WMIProductVersion>
<WMIProductVersion WMIVersionID="5" WMICALVersion="0xA0000" WMICALVerResourceID="40010">WIN_THRESHOLD_CAL_VERSION, IDS_LICBRAND_CAL_OS_VERSION_THRESHOLD</WMIProductVersion>
<WMIProductVersion WMIVersionID="6" WMICALVersion="0xA0001" WMICALVerResourceID="40011">WIN_2019_CAL_VERSION, IDS_LICBRAND_CAL_OS_VERSION_2019</WMIProductVersion>
<WMIProductVersion WMIVersionID="7" WMICALVersion="0xA0002" WMICALVerResourceID="40012">WIN_2022_CAL_VERSION, IDS_LICBRAND_CAL_OS_VERSION_2022</WMIProductVersion>
<WMIProductVersion WMIVersionID="8" WMICALVersion="0xA0003" WMICALVerResourceID="40013">WIN_2025_CAL_VERSION, IDS_LICBRAND_CAL_OS_VERSION_2025</WMIProductVersion>
</WMIProductVersions>
<!-- Array of WMIProductType objects from lsdata.h -->
<WMIProductTypes>
<WMIProductType WMIProductID="0" CALModel="A02" CALType="S">PER_DEVICE_ENF_MODEL, TERMSERV_TS_TYPE</WMIProductType>
<WMIProductType WMIProductID="1" CALModel="C50" CALType="S">PER_USER_ENF_MODEL, TERMSERV_TS_TYPE</WMIProductType>
<WMIProductType WMIProductID="2" CALModel="B96" CALType="I">EXTERNAL_CONN_ENF_MODEL, TERMSERV_INTERNET_TYPE</WMIProductType>
<WMIProductType WMIProductID="3" CALModel="A02" CALType="EX">PER_DEVICE_ENF_MODEL, TERMSERV_FREE_TYPE</WMIProductType>
<WMIProductType WMIProductID="4" CALModel="A02" CALType="VDI">PER_DEVICE_ENF_MODEL, TERMSERV_VDI_TYPE</WMIProductType>
<WMIProductType WMIProductID="5" CALModel="A02" CALType="VDIP">PER_DEVICE_ENF_MODEL, TERMSERV_VDIP_TYPE</WMIProductType>
<WMIProductType WMIProductID="6" CALModel="A02" CALType="VDIS">PER_DEVICE_ENF_MODEL, TERMSERV_VDI_SUITE_TYPE</WMIProductType>
</WMIProductTypes>
<!-- Array of CALInstance objects from lsdata.h -->
<CALInstances>
<!-- WIN 2K CAL Instances -->
<CALInstance CHID="EX-001" CALVersion="0x50000" CALModel="A02" CALType="EX" CompanyNameResourceID="40005" PlatformID="2" CALStrShortResID="60000" CALStrLongResID="60100" CALVerStrResID="40001" CALInstaceDescResID="60200" CALImportDescResID="60200" MinSupportedLSVersion="0x50000" CALSupportFlags="4"/>
<CALInstance CHID="001" CALVersion="0x50000" CALModel="A02" CALType="S" CompanyNameResourceID="40005" PlatformID="0xFF" CALStrShortResID="60001" CALStrLongResID="60101" CALVerStrResID="40001" CALInstaceDescResID="60201" CALImportDescResID="60201" MinSupportedLSVersion="0x50000" CALSupportFlags="4"/>
<CALInstance CHID="002" CALVersion="0x50000" CALModel="B96" CALType="I" CompanyNameResourceID="40005" PlatformID="0xFF" CALStrShortResID="60002" CALStrLongResID="60102" CALVerStrResID="40001" CALInstaceDescResID="60202" CALImportDescResID="60202" MinSupportedLSVersion="0x50000" CALSupportFlags="4"/>
<!-- WIN 2K3 CAL Instances -->
<CALInstance CHID="003" CALVersion="0x50002" CALModel="C50" CALType="S" CompanyNameResourceID="40005" PlatformID="0xFF" CALStrShortResID="60003" CALStrLongResID="60103" CALVerStrResID="40002" CALInstaceDescResID="60203" CALImportDescResID="60400" MinSupportedLSVersion="0x50002" CALSupportFlags="8"/>
<CALInstance CHID="004" CALVersion="0x50002" CALModel="A02" CALType="S" CompanyNameResourceID="40005" PlatformID="0xFF" CALStrShortResID="60001" CALStrLongResID="60101" CALVerStrResID="40002" CALInstaceDescResID="60204" CALImportDescResID="60401" MinSupportedLSVersion="0x50002" CALSupportFlags="8"/>
<!-- WIN 2K8 and 2K8R2 CAL Instances -->
<CALInstance CHID="005" CALVersion="0x60000" CALModel="A02" CALType="S" CompanyNameResourceID="40005" PlatformID="0xFF" CALStrShortResID="60004" CALStrLongResID="60104" CALVerStrResID="40006" CALInstaceDescResID="60205" CALImportDescResID="60402" MinSupportedLSVersion="0x60000" CALSupportFlags="32"/>
<CALInstance CHID="006" CALVersion="0x60000" CALModel="C50" CALType="S" CompanyNameResourceID="40005" PlatformID="0xFF" CALStrShortResID="60005" CALStrLongResID="60105" CALVerStrResID="40006" CALInstaceDescResID="60206" CALImportDescResID="60403" MinSupportedLSVersion="0x60000" CALSupportFlags="32"/>
<CALInstance CHID="009" CALVersion="0x60000" CALModel="A02" CALType="VDI" CompanyNameResourceID="40005" PlatformID="0xFF" CALStrShortResID="60006" CALStrLongResID="60106" CALVerStrResID="40007" CALInstaceDescResID="60207" CALImportDescResID="60404" MinSupportedLSVersion="0x60001" CALSupportFlags="256"/>
<CALInstance CHID="010" CALVersion="0x60000" CALModel="A02" CALType="VDIP" CompanyNameResourceID="40005" PlatformID="0xFF" CALStrShortResID="60007" CALStrLongResID="60107" CALVerStrResID="40007" CALInstaceDescResID="60208" CALImportDescResID="60405" MinSupportedLSVersion="0x60001" CALSupportFlags="256"/>
<CALInstance CHID="016" CALVersion="0x60000" CALModel="A02" CALType="VDIS" CompanyNameResourceID="40005" PlatformID="0xFF" CALStrShortResID="60010" CALStrLongResID="60110" CALVerStrResID="40007" CALInstaceDescResID="60207" CALImportDescResID="60404" MinSupportedLSVersion="0x60001" CALSupportFlags="0"/>
<!-- WIN 2K12 and 2K12R2 CAL Instances -->
<CALInstance CHID="011" CALVersion="0x60002" CALModel="A02" CALType="S" CompanyNameResourceID="40005" PlatformID="0xFF" CALStrShortResID="60008" CALStrLongResID="60108" CALVerStrResID="40008" CALInstaceDescResID="60209" CALImportDescResID="60406" MinSupportedLSVersion="0x60002" CALSupportFlags="0"/>
<CALInstance CHID="012" CALVersion="0x60002" CALModel="C50" CALType="S" CompanyNameResourceID="40005" PlatformID="0xFF" CALStrShortResID="60009" CALStrLongResID="60109" CALVerStrResID="40008" CALInstaceDescResID="60210" CALImportDescResID="60407" MinSupportedLSVersion="0x60002" CALSupportFlags="0"/>
<CALInstance CHID="015" CALVersion="0x60002" CALModel="A02" CALType="VDIS" CompanyNameResourceID="40005" PlatformID="0xFF" CALStrShortResID="60010" CALStrLongResID="60110" CALVerStrResID="40008" CALInstaceDescResID="60211" CALImportDescResID="60408" MinSupportedLSVersion="0x60002" CALSupportFlags="0"/>
<!-- WIN 2K16 CAL Instances -->
<CALInstance CHID="020" CALVersion="0xA0000" CALModel="A02" CALType="S" CompanyNameResourceID="40005" PlatformID="0xFF" CALStrShortResID="60008" CALStrLongResID="60108" CALVerStrResID="40010" CALInstaceDescResID="60215" CALImportDescResID="60415" MinSupportedLSVersion="0xA0000" CALSupportFlags="0"/>
<CALInstance CHID="021" CALVersion="0xA0000" CALModel="C50" CALType="S" CompanyNameResourceID="40005" PlatformID="0xFF" CALStrShortResID="60009" CALStrLongResID="60109" CALVerStrResID="40010" CALInstaceDescResID="60216" CALImportDescResID="60416" MinSupportedLSVersion="0xA0000" CALSupportFlags="0"/>
<CALInstance CHID="022" CALVersion="0xA0000" CALModel="A02" CALType="VDIS" CompanyNameResourceID="40005" PlatformID="0xFF" CALStrShortResID="60010" CALStrLongResID="60110" CALVerStrResID="40010" CALInstaceDescResID="60217" CALImportDescResID="60417" MinSupportedLSVersion="0xA0000" CALSupportFlags="0"/>
<!-- WIN 2K19 CAL Instances -->
<CALInstance CHID="026" CALVersion="0xA0001" CALModel="A02" CALType="S" CompanyNameResourceID="40005" PlatformID="0xFF" CALStrShortResID="60008" CALStrLongResID="60108" CALVerStrResID="40011" CALInstaceDescResID="60220" CALImportDescResID="60420" MinSupportedLSVersion="0xA0001" CALSupportFlags="0"/>
<CALInstance CHID="027" CALVersion="0xA0001" CALModel="C50" CALType="S" CompanyNameResourceID="40005" PlatformID="0xFF" CALStrShortResID="60009" CALStrLongResID="60109" CALVerStrResID="40011" CALInstaceDescResID="60221" CALImportDescResID="60421" MinSupportedLSVersion="0xA0001" CALSupportFlags="0"/>
<CALInstance CHID="028" CALVersion="0xA0001" CALModel="A02" CALType="VDIS" CompanyNameResourceID="40005" PlatformID="0xFF" CALStrShortResID="60010" CALStrLongResID="60110" CALVerStrResID="40011" CALInstaceDescResID="60222" CALImportDescResID="60422" MinSupportedLSVersion="0xA0001" CALSupportFlags="0"/>
<!-- WIN 2K21 CAL Instances -->
<CALInstance CHID="029" CALVersion="0xA0002" CALModel="A02" CALType="S" CompanyNameResourceID="40005" PlatformID="0xFF" CALStrShortResID="60008" CALStrLongResID="60108" CALVerStrResID="40012" CALInstaceDescResID="60223" CALImportDescResID="60423" MinSupportedLSVersion="0xA0002" CALSupportFlags="0"/>
<CALInstance CHID="030" CALVersion="0xA0002" CALModel="C50" CALType="S" CompanyNameResourceID="40005" PlatformID="0xFF" CALStrShortResID="60009" CALStrLongResID="60109" CALVerStrResID="40012" CALInstaceDescResID="60224" CALImportDescResID="60424" MinSupportedLSVersion="0xA0002" CALSupportFlags="0"/>
<CALInstance CHID="031" CALVersion="0xA0002" CALModel="A02" CALType="VDIS" CompanyNameResourceID="40005" PlatformID="0xFF" CALStrShortResID="60010" CALStrLongResID="60110" CALVerStrResID="40012" CALInstaceDescResID="60225" CALImportDescResID="60425" MinSupportedLSVersion="0xA0002" CALSupportFlags="0"/>
<!-- WIN 2K25 CAL Instances -->
<CALInstance CHID="032" CALVersion="0xA0003" CALModel="A02" CALType="S" CompanyNameResourceID="40005" PlatformID="0xFF" CALStrShortResID="60008" CALStrLongResID="60108" CALVerStrResID="40013" CALInstaceDescResID="60226" CALImportDescResID="60426" MinSupportedLSVersion="0xA0003" CALSupportFlags="0"/>
<CALInstance CHID="033" CALVersion="0xA0003" CALModel="C50" CALType="S" CompanyNameResourceID="40005" PlatformID="0xFF" CALStrShortResID="60009" CALStrLongResID="60109" CALVerStrResID="40013" CALInstaceDescResID="60227" CALImportDescResID="60427" MinSupportedLSVersion="0xA0003" CALSupportFlags="0"/>
<CALInstance CHID="034" CALVersion="0xA0003" CALModel="A02" CALType="VDIS" CompanyNameResourceID="40005" PlatformID="0xFF" CALStrShortResID="60010" CALStrLongResID="60110" CALVerStrResID="40013" CALInstaceDescResID="60228" CALImportDescResID="60428" MinSupportedLSVersion="0xA0003" CALSupportFlags="0"/>
</CALInstances>
<!-- Array of RetailCALGroupIDs objects from lsdata.h -->
<RetailCALGroups>
<RetailCALGroup CHID="012" NoOfCALs="1" GroupId="1759"> Win Rmt Dsktp Svcs CAL 2012 RTM ServerStandard 1 User </RetailCALGroup>
<RetailCALGroup CHID="011" NoOfCALs="1" GroupId="1760"> Win Rmt Dsktp Svcs CAL 2012 RTM ServerStandard 1 Device </RetailCALGroup>
<RetailCALGroup CHID="012" NoOfCALs="1" GroupId="1761"> Win Rmt Dsktp Svcs CAL 2012 RTM ServerStandard 1 User AE </RetailCALGroup>
<RetailCALGroup CHID="011" NoOfCALs="1" GroupId="1762"> Win Rmt Dsktp Svcs CAL 2012 RTM ServerStandard 1 Device AE </RetailCALGroup>
<RetailCALGroup CHID="012" NoOfCALs="5" GroupId="1763"> Win Rmt Dsktp Svcs CAL 2012 RTM ServerStandard 5 User </RetailCALGroup>
<RetailCALGroup CHID="011" NoOfCALs="5" GroupId="1764"> Win Rmt Dsktp Svcs CAL 2012 RTM ServerStandard 5 Device </RetailCALGroup>
<RetailCALGroup CHID="012" NoOfCALs="5" GroupId="1765"> Win Rmt Dsktp Svcs CAL 2012 RTM ServerStandard 5 User AE </RetailCALGroup>
<RetailCALGroup CHID="011" NoOfCALs="5" GroupId="1766"> Win Rmt Dsktp Svcs CAL 2012 RTM ServerStandard 5 Device AE </RetailCALGroup>
<RetailCALGroup CHID="012" NoOfCALs="20" GroupId="1767"> Win Rmt Dsktp Svcs CAL 2012 RTM ServerStandard 20 User </RetailCALGroup>
<RetailCALGroup CHID="011" NoOfCALs="20" GroupId="1768"> Win Rmt Dsktp Svcs CAL 2012 RTM ServerStandard 20 Device </RetailCALGroup>
<RetailCALGroup CHID="012" NoOfCALs="20" GroupId="1769"> Win Rmt Dsktp Svcs CAL 2012 RTM ServerStandard 20 User AE </RetailCALGroup>
<RetailCALGroup CHID="011" NoOfCALs="20" GroupId="1770"> Win Rmt Dsktp Svcs CAL 2012 RTM ServerStandard 20 Device AE </RetailCALGroup>
<RetailCALGroup CHID="012" NoOfCALs="10" GroupId="1771"> Win Rmt Dsktp Svcs CAL 2012 RTM ServerStandard 10 User MAPS </RetailCALGroup>
<RetailCALGroup CHID="011" NoOfCALs="10" GroupId="1772"> Win Rmt Dsktp Svcs CAL 2012 RTM ServerStandard 10 Device MAPS</RetailCALGroup>
<RetailCALGroup CHID="012" NoOfCALs="25" GroupId="1773"> Win Rmt Dsktp Svcs CAL 2012 RTM ServerStandard 25 User MPN </RetailCALGroup>
<RetailCALGroup CHID="011" NoOfCALs="25" GroupId="1774"> Win Rmt Dsktp Svcs CAL 2012 RTM ServerStandard 25 Device MPN</RetailCALGroup>
<RetailCALGroup CHID="012" NoOfCALs="50" GroupId="1775"> Win Rmt Dsktp Svcs CAL 2012 RTM ServerStandard 50 User MPN </RetailCALGroup>
<RetailCALGroup CHID="011" NoOfCALs="50" GroupId="1776"> Win Rmt Dsktp Svcs CAL 2012 RTM ServerStandard 50 Device MPN</RetailCALGroup>
<RetailCALGroup CHID="012" NoOfCALs="50" GroupId="1902"> Win Rmt Dsktp Svcs CAL 2012 RTM ServerStandard 50 User MSDN </RetailCALGroup>
<RetailCALGroup CHID="011" NoOfCALs="50" GroupId="1903"> Win Rmt Dsktp Svcs CAL 2012 RTM ServerStandard 50 Device MSDN</RetailCALGroup>
<!-- Server 2016 Per-User Retail CAL's -->
<RetailCALGroup CHID="021" NoOfCALs="1" GroupId="3809"> Win Rmt Dsktp Svcs CAL 2016 RTM ServerStandard 1 User </RetailCALGroup>
<RetailCALGroup CHID="021" NoOfCALs="1" GroupId="3810"> Win Rmt Dsktp Svcs CAL 2016 RTM ServerStandard 1 User AE </RetailCALGroup>
<RetailCALGroup CHID="021" NoOfCALs="5" GroupId="3811"> Win Rmt Dsktp Svcs CAL 2016 RTM ServerStandard 5 User </RetailCALGroup>
<RetailCALGroup CHID="021" NoOfCALs="5" GroupId="3812"> Win Rmt Dsktp Svcs CAL 2016 RTM ServerStandard 5 User AE </RetailCALGroup>
<RetailCALGroup CHID="021" NoOfCALs="20" GroupId="3813"> Win Rmt Dsktp Svcs CAL 2016 RTM ServerStandard 20 User </RetailCALGroup>
<RetailCALGroup CHID="021" NoOfCALs="20" GroupId="3814"> Win Rmt Dsktp Svcs CAL 2016 RTM ServerStandard 20 User AE </RetailCALGroup>
<RetailCALGroup CHID="021" NoOfCALs="10" GroupId="3815"> Win Rmt Dsktp Svcs CAL 2016 RTM ServerStandard 10 User MAPS </RetailCALGroup>
<RetailCALGroup CHID="021" NoOfCALs="25" GroupId="3816"> Win Rmt Dsktp Svcs CAL 2016 RTM ServerStandard 25 User MPN </RetailCALGroup>
<RetailCALGroup CHID="021" NoOfCALs="50" GroupId="3817"> Win Rmt Dsktp Svcs CAL 2016 RTM ServerStandard 50 User MPN </RetailCALGroup>
<RetailCALGroup CHID="021" NoOfCALs="50" GroupId="3818"> Win Rmt Dsktp Svcs CAL 2016 RTM ServerStandard 50 User MSDN </RetailCALGroup>
<RetailCALGroup CHID="021" NoOfCALs="10" GroupId="3819"> Win Rmt Dsktp Svcs CAL 2016 RTM ServerStandard 10 User OEM </RetailCALGroup>
<RetailCALGroup CHID="021" NoOfCALs="50" GroupId="3820"> Win Rmt Dsktp Svcs CAL 2016 RTM ServerStandard 50 User OEM </RetailCALGroup>
<RetailCALGroup CHID="021" NoOfCALs="100" GroupId="3821"> Win Rmt Dsktp Svcs CAL 2016 RTM ServerStandard 100 User OEM </RetailCALGroup>
<RetailCALGroup CHID="021" NoOfCALs="500" GroupId="3822"> Win Rmt Dsktp Svcs CAL 2016 RTM ServerStandard 500 User CSP </RetailCALGroup>
<RetailCALGroup CHID="021" NoOfCALs="1000" GroupId="3823"> Win Rmt Dsktp Svcs CAL 2016 RTM ServerStandard 1000 User IUO</RetailCALGroup>
<!-- Server 2016 Per-Device Retail CAL's -->
<RetailCALGroup CHID="020" NoOfCALs="1" GroupId="3824"> Win Rmt Dsktp Svcs CAL 2016 RTM ServerStandard 1 Device </RetailCALGroup>
<RetailCALGroup CHID="020" NoOfCALs="1" GroupId="3825"> Win Rmt Dsktp Svcs CAL 2016 RTM ServerStandard 1 Device AE </RetailCALGroup>
<RetailCALGroup CHID="020" NoOfCALs="5" GroupId="3826"> Win Rmt Dsktp Svcs CAL 2016 RTM ServerStandard 5 Device </RetailCALGroup>
<RetailCALGroup CHID="020" NoOfCALs="5" GroupId="3827"> Win Rmt Dsktp Svcs CAL 2016 RTM ServerStandard 5 Device AE </RetailCALGroup>
<RetailCALGroup CHID="020" NoOfCALs="20" GroupId="3828"> Win Rmt Dsktp Svcs CAL 2016 RTM ServerStandard 20 Device </RetailCALGroup>
<RetailCALGroup CHID="020" NoOfCALs="20" GroupId="3829"> Win Rmt Dsktp Svcs CAL 2016 RTM ServerStandard 20 Device AE </RetailCALGroup>
<RetailCALGroup CHID="020" NoOfCALs="10" GroupId="3830"> Win Rmt Dsktp Svcs CAL 2016 RTM ServerStandard 10 Device MAPS </RetailCALGroup>
<RetailCALGroup CHID="020" NoOfCALs="25" GroupId="3831"> Win Rmt Dsktp Svcs CAL 2016 RTM ServerStandard 25 Device MPN </RetailCALGroup>
<RetailCALGroup CHID="020" NoOfCALs="50" GroupId="3832"> Win Rmt Dsktp Svcs CAL 2016 RTM ServerStandard 50 Device MPN </RetailCALGroup>
<RetailCALGroup CHID="020" NoOfCALs="50" GroupId="3833"> Win Rmt Dsktp Svcs CAL 2016 RTM ServerStandard 50 Device MSDN </RetailCALGroup>
<RetailCALGroup CHID="020" NoOfCALs="10" GroupId="3834"> Win Rmt Dsktp Svcs CAL 2016 RTM ServerStandard 10 Device OEM </RetailCALGroup>
<RetailCALGroup CHID="020" NoOfCALs="50" GroupId="3835"> Win Rmt Dsktp Svcs CAL 2016 RTM ServerStandard 50 Device OEM </RetailCALGroup>
<RetailCALGroup CHID="020" NoOfCALs="100" GroupId="3836"> Win Rmt Dsktp Svcs CAL 2016 RTM ServerStandard 100 Device OEM </RetailCALGroup>
<RetailCALGroup CHID="020" NoOfCALs="500" GroupId="3837"> Win Rmt Dsktp Svcs CAL 2016 RTM ServerStandard 500 Device CSP </RetailCALGroup>
<RetailCALGroup CHID="020" NoOfCALs="1000" GroupId="3838"> Win Rmt Dsktp Svcs CAL 2016 RTM ServerStandard 1000 Device IUO </RetailCALGroup>
<!-- Server 2019 Per-User Retail CAL's -->
<RetailCALGroup CHID="027" NoOfCALs="1" GroupId="4260"> Win Rmt Dsktp Svcs CAL 2019 RTM ServerStandard 1 User </RetailCALGroup>
<RetailCALGroup CHID="027" NoOfCALs="1" GroupId="4261"> Win Rmt Dsktp Svcs CAL 2019 RTM ServerStandard 1 User AE </RetailCALGroup>
<RetailCALGroup CHID="027" NoOfCALs="5" GroupId="4262"> Win Rmt Dsktp Svcs CAL 2019 RTM ServerStandard 5 User </RetailCALGroup>
<RetailCALGroup CHID="027" NoOfCALs="5" GroupId="4263"> Win Rmt Dsktp Svcs CAL 2019 RTM ServerStandard 5 User AE </RetailCALGroup>
<RetailCALGroup CHID="027" NoOfCALs="20" GroupId="4264"> Win Rmt Dsktp Svcs CAL 2019 RTM ServerStandard 20 User </RetailCALGroup>
<RetailCALGroup CHID="027" NoOfCALs="20" GroupId="4265"> Win Rmt Dsktp Svcs CAL 2019 RTM ServerStandard 20 User AE </RetailCALGroup>
<RetailCALGroup CHID="027" NoOfCALs="10" GroupId="4266"> Win Rmt Dsktp Svcs CAL 2019 RTM ServerStandard 10 User MAPS </RetailCALGroup>
<RetailCALGroup CHID="027" NoOfCALs="25" GroupId="4267"> Win Rmt Dsktp Svcs CAL 2019 RTM ServerStandard 25 User MPN </RetailCALGroup>
<RetailCALGroup CHID="027" NoOfCALs="50" GroupId="4268"> Win Rmt Dsktp Svcs CAL 2019 RTM ServerStandard 50 User MPN </RetailCALGroup>
<RetailCALGroup CHID="027" NoOfCALs="50" GroupId="4269"> Win Rmt Dsktp Svcs CAL 2019 RTM ServerStandard 50 User MSDN </RetailCALGroup>
<RetailCALGroup CHID="027" NoOfCALs="10" GroupId="4270"> Win Rmt Dsktp Svcs CAL 2019 RTM ServerStandard 10 User OEM </RetailCALGroup>
<RetailCALGroup CHID="027" NoOfCALs="50" GroupId="4271"> Win Rmt Dsktp Svcs CAL 2019 RTM ServerStandard 50 User OEM </RetailCALGroup>
<RetailCALGroup CHID="027" NoOfCALs="100" GroupId="4272"> Win Rmt Dsktp Svcs CAL 2019 RTM ServerStandard 100 User OEM </RetailCALGroup>
<RetailCALGroup CHID="027" NoOfCALs="500" GroupId="4273"> Win Rmt Dsktp Svcs CAL 2019 RTM ServerStandard 500 User CSP </RetailCALGroup>
<RetailCALGroup CHID="027" NoOfCALs="1000" GroupId="4274"> Win Rmt Dsktp Svcs CAL 2019 RTM ServerStandard 1000 User IUO</RetailCALGroup>
<!-- Server 2019 Per-Device Retail CAL's -->
<RetailCALGroup CHID="026" NoOfCALs="1" GroupId="4275"> Win Rmt Dsktp Svcs CAL 2019 RTM ServerStandard 1 Device </RetailCALGroup>
<RetailCALGroup CHID="026" NoOfCALs="1" GroupId="4276"> Win Rmt Dsktp Svcs CAL 2019 RTM ServerStandard 1 Device AE </RetailCALGroup>
<RetailCALGroup CHID="026" NoOfCALs="5" GroupId="4277"> Win Rmt Dsktp Svcs CAL 2019 RTM ServerStandard 5 Device </RetailCALGroup>
<RetailCALGroup CHID="026" NoOfCALs="5" GroupId="4278"> Win Rmt Dsktp Svcs CAL 2019 RTM ServerStandard 5 Device AE </RetailCALGroup>
<RetailCALGroup CHID="026" NoOfCALs="20" GroupId="4279"> Win Rmt Dsktp Svcs CAL 2019 RTM ServerStandard 20 Device </RetailCALGroup>
<RetailCALGroup CHID="026" NoOfCALs="20" GroupId="4280"> Win Rmt Dsktp Svcs CAL 2019 RTM ServerStandard 20 Device AE </RetailCALGroup>
<RetailCALGroup CHID="026" NoOfCALs="10" GroupId="4281"> Win Rmt Dsktp Svcs CAL 2019 RTM ServerStandard 10 Device MAPS </RetailCALGroup>
<RetailCALGroup CHID="026" NoOfCALs="25" GroupId="4282"> Win Rmt Dsktp Svcs CAL 2019 RTM ServerStandard 25 Device MPN </RetailCALGroup>
<RetailCALGroup CHID="026" NoOfCALs="50" GroupId="4283"> Win Rmt Dsktp Svcs CAL 2019 RTM ServerStandard 50 Device MPN </RetailCALGroup>
<RetailCALGroup CHID="026" NoOfCALs="50" GroupId="4284"> Win Rmt Dsktp Svcs CAL 2019 RTM ServerStandard 50 Device MSDN </RetailCALGroup>
<RetailCALGroup CHID="026" NoOfCALs="10" GroupId="4285"> Win Rmt Dsktp Svcs CAL 2019 RTM ServerStandard 10 Device OEM </RetailCALGroup>
<RetailCALGroup CHID="026" NoOfCALs="50" GroupId="4286"> Win Rmt Dsktp Svcs CAL 2019 RTM ServerStandard 50 Device OEM </RetailCALGroup>
<RetailCALGroup CHID="026" NoOfCALs="100" GroupId="4287"> Win Rmt Dsktp Svcs CAL 2019 RTM ServerStandard 100 Device OEM </RetailCALGroup>
<RetailCALGroup CHID="026" NoOfCALs="500" GroupId="4288"> Win Rmt Dsktp Svcs CAL 2019 RTM ServerStandard 500 Device CSP </RetailCALGroup>
<RetailCALGroup CHID="026" NoOfCALs="1000" GroupId="4289"> Win Rmt Dsktp Svcs CAL 2019 RTM ServerStandard 1000 Device IUO </RetailCALGroup>
<!-- Server 2022 Per-User Retail CAL's -->
<RetailCALGroup CHID="030" NoOfCALs="1" GroupId="4486">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail 1 User </RetailCALGroup>
<RetailCALGroup CHID="030" NoOfCALs="1" GroupId="4487">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail OEM 1 User </RetailCALGroup>
<RetailCALGroup CHID="030" NoOfCALs="1" GroupId="4488">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail 1 User AE </RetailCALGroup>
<RetailCALGroup CHID="030" NoOfCALs="5" GroupId="4489">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail 5 User </RetailCALGroup>
<RetailCALGroup CHID="030" NoOfCALs="5" GroupId="4490">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail OEM 5 User </RetailCALGroup>
<RetailCALGroup CHID="030" NoOfCALs="5" GroupId="4491">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail 5 User AE </RetailCALGroup>
<RetailCALGroup CHID="030" NoOfCALs="20" GroupId="4492">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail 20 User </RetailCALGroup>
<RetailCALGroup CHID="030" NoOfCALs="20" GroupId="4493">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail 20 User AE </RetailCALGroup>
<RetailCALGroup CHID="030" NoOfCALs="10" GroupId="4494">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail MAPS 10 User </RetailCALGroup>
<RetailCALGroup CHID="030" NoOfCALs="25" GroupId="4495">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail MPN 25 User </RetailCALGroup>
<RetailCALGroup CHID="030" NoOfCALs="50" GroupId="4496">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail MPN 50 User </RetailCALGroup>
<RetailCALGroup CHID="030" NoOfCALs="50" GroupId="4497">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail MSDN 50 User </RetailCALGroup>
<RetailCALGroup CHID="030" NoOfCALs="10" GroupId="4498">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail OEM 10 User </RetailCALGroup>
<RetailCALGroup CHID="030" NoOfCALs="10" GroupId="4499">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail OEM 10 User </RetailCALGroup>
<RetailCALGroup CHID="030" NoOfCALs="50" GroupId="4500">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail OEM 50 User </RetailCALGroup>
<RetailCALGroup CHID="030" NoOfCALs="50" GroupId="4501">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail OEM 50 User </RetailCALGroup>
<RetailCALGroup CHID="030" NoOfCALs="100" GroupId="4502">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail OEM 100 User </RetailCALGroup>
<RetailCALGroup CHID="030" NoOfCALs="100" GroupId="4503">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail OEM 100 User </RetailCALGroup>
<RetailCALGroup CHID="030" NoOfCALs="500" GroupId="4504">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail 500 User CSP </RetailCALGroup>
<RetailCALGroup CHID="030" NoOfCALs="1000" GroupId="4505">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail Internal Use Only 1000 User </RetailCALGroup>
<!-- Server 2022 Per-Device Retail CAL's -->
<RetailCALGroup CHID="029" NoOfCALs="1" GroupId="4506">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail 1 Device </RetailCALGroup>
<RetailCALGroup CHID="029" NoOfCALs="1" GroupId="4507">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail OEM 1 Device </RetailCALGroup>
<RetailCALGroup CHID="029" NoOfCALs="1" GroupId="4508">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail 1 Device AE </RetailCALGroup>
<RetailCALGroup CHID="029" NoOfCALs="5" GroupId="4509">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail 5 Device </RetailCALGroup>
<RetailCALGroup CHID="029" NoOfCALs="5" GroupId="4510">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail OEM 5 Device </RetailCALGroup>
<RetailCALGroup CHID="029" NoOfCALs="5" GroupId="4511">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail 5 Device AE </RetailCALGroup>
<RetailCALGroup CHID="029" NoOfCALs="20" GroupId="4512">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail 20 Device </RetailCALGroup>
<RetailCALGroup CHID="029" NoOfCALs="20" GroupId="4513">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail 20 Device AE </RetailCALGroup>
<RetailCALGroup CHID="029" NoOfCALs="10" GroupId="4514">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail MAPS 10 Device </RetailCALGroup>
<RetailCALGroup CHID="029" NoOfCALs="25" GroupId="4515">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail MPN 25 Device </RetailCALGroup>
<RetailCALGroup CHID="029" NoOfCALs="50" GroupId="4516">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail MPN 50 Device </RetailCALGroup>
<RetailCALGroup CHID="029" NoOfCALs="50" GroupId="4517">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail MSDN 50 Device </RetailCALGroup>
<RetailCALGroup CHID="029" NoOfCALs="10" GroupId="4518">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail OEM 10 Device </RetailCALGroup>
<RetailCALGroup CHID="029" NoOfCALs="10" GroupId="4519">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail OEM 10 Device </RetailCALGroup>
<RetailCALGroup CHID="029" NoOfCALs="50" GroupId="4520">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail OEM 50 Device </RetailCALGroup>
<RetailCALGroup CHID="029" NoOfCALs="50" GroupId="4521">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail OEM 50 Device </RetailCALGroup>
<RetailCALGroup CHID="029" NoOfCALs="100" GroupId="4522">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail OEM 100 Device </RetailCALGroup>
<RetailCALGroup CHID="029" NoOfCALs="100" GroupId="4523">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail OEM 100 Device </RetailCALGroup>
<RetailCALGroup CHID="029" NoOfCALs="500" GroupId="4524">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail 500 Device CSP </RetailCALGroup>
<RetailCALGroup CHID="029" NoOfCALs="1000" GroupId="4525">Win Rmt Dsktp Svcs CAL 2022 RTM ServerStandard Retail Internal Use Only 1000 Device </RetailCALGroup>
<!-- Server 2025 Per-User Retail CAL's -->
<RetailCALGroup CHID="033" NoOfCALs="1" GroupId="4942">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail 1 User </RetailCALGroup>
<RetailCALGroup CHID="033" NoOfCALs="1" GroupId="4943">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail OEM 1 User </RetailCALGroup>
<RetailCALGroup CHID="033" NoOfCALs="1" GroupId="4944">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail 1 User AE </RetailCALGroup>
<RetailCALGroup CHID="033" NoOfCALs="5" GroupId="4945">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail 5 User </RetailCALGroup>
<RetailCALGroup CHID="033" NoOfCALs="5" GroupId="4946">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail OEM 5 User </RetailCALGroup>
<RetailCALGroup CHID="033" NoOfCALs="5" GroupId="4947">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail 5 User AE </RetailCALGroup>
<RetailCALGroup CHID="033" NoOfCALs="20" GroupId="4948">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail 20 User </RetailCALGroup>
<RetailCALGroup CHID="033" NoOfCALs="20" GroupId="4949">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail 20 User AE </RetailCALGroup>
<RetailCALGroup CHID="033" NoOfCALs="10" GroupId="4950">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail MAPS 10 User </RetailCALGroup>
<RetailCALGroup CHID="033" NoOfCALs="25" GroupId="4951">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail MPN 25 User </RetailCALGroup>
<RetailCALGroup CHID="033" NoOfCALs="50" GroupId="4952">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail MPN 50 User </RetailCALGroup>
<RetailCALGroup CHID="033" NoOfCALs="50" GroupId="4953">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail MSDN 50 User </RetailCALGroup>
<RetailCALGroup CHID="033" NoOfCALs="10" GroupId="4954">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail OEM 10 User </RetailCALGroup>
<RetailCALGroup CHID="033" NoOfCALs="10" GroupId="4955">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail OEM 10 User </RetailCALGroup>
<RetailCALGroup CHID="033" NoOfCALs="50" GroupId="4956">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail OEM 50 User </RetailCALGroup>
<RetailCALGroup CHID="033" NoOfCALs="50" GroupId="4957">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail OEM 50 User </RetailCALGroup>
<RetailCALGroup CHID="033" NoOfCALs="100" GroupId="4958">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail OEM 100 User </RetailCALGroup>
<RetailCALGroup CHID="033" NoOfCALs="100" GroupId="4959">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail OEM 100 User </RetailCALGroup>
<RetailCALGroup CHID="033" NoOfCALs="500" GroupId="4960">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail 500 User CSP </RetailCALGroup>
<RetailCALGroup CHID="033" NoOfCALs="1000" GroupId="4961">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail Internal Use Only 1000 User </RetailCALGroup>
<!-- Server 2025 Per-Device Retail CAL's -->
<RetailCALGroup CHID="032" NoOfCALs="1" GroupId="4962">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail 1 Device </RetailCALGroup>
<RetailCALGroup CHID="032" NoOfCALs="1" GroupId="4963">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail OEM 1 Device </RetailCALGroup>
<RetailCALGroup CHID="032" NoOfCALs="1" GroupId="4964">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail 1 Device AE </RetailCALGroup>
<RetailCALGroup CHID="032" NoOfCALs="5" GroupId="4965">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail 5 Device </RetailCALGroup>
<RetailCALGroup CHID="032" NoOfCALs="5" GroupId="4966">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail OEM 5 Device </RetailCALGroup>
<RetailCALGroup CHID="032" NoOfCALs="5" GroupId="4967">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail 5 Device AE </RetailCALGroup>
<RetailCALGroup CHID="032" NoOfCALs="20" GroupId="4968">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail 20 Device </RetailCALGroup>
<RetailCALGroup CHID="032" NoOfCALs="20" GroupId="4969">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail 20 Device AE </RetailCALGroup>
<RetailCALGroup CHID="032" NoOfCALs="10" GroupId="4970">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail MAPS 10 Device </RetailCALGroup>
<RetailCALGroup CHID="032" NoOfCALs="25" GroupId="4971">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail MPN 25 Device </RetailCALGroup>
<RetailCALGroup CHID="032" NoOfCALs="50" GroupId="4972">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail MPN 50 Device </RetailCALGroup>
<RetailCALGroup CHID="032" NoOfCALs="50" GroupId="4973">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail MSDN 50 Device </RetailCALGroup>
<RetailCALGroup CHID="032" NoOfCALs="10" GroupId="4974">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail OEM 10 Device </RetailCALGroup>
<RetailCALGroup CHID="032" NoOfCALs="10" GroupId="4975">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail OEM 10 Device </RetailCALGroup>
<RetailCALGroup CHID="032" NoOfCALs="50" GroupId="4976">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail OEM 50 Device </RetailCALGroup>
<RetailCALGroup CHID="032" NoOfCALs="50" GroupId="4977">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail OEM 50 Device </RetailCALGroup>
<RetailCALGroup CHID="032" NoOfCALs="100" GroupId="4978">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail OEM 100 Device </RetailCALGroup>
<RetailCALGroup CHID="032" NoOfCALs="100" GroupId="4979">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail OEM 100 Device </RetailCALGroup>
<RetailCALGroup CHID="032" NoOfCALs="500" GroupId="4980">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail 500 Device CSP </RetailCALGroup>
<RetailCALGroup CHID="032" NoOfCALs="1000" GroupId="4981">Win Rmt Dsktp Svcs CAL 2025 RTM ServerStandard Retail Internal Use Only 1000 Device </RetailCALGroup>
</RetailCALGroups>
</TlsBrandingVersions>
@WitherOrNot
Copy link
Author

WitherOrNot commented Apr 10, 2025

Dependencies:

pip install pycryptodome ecutils

Usage:

python tspkgen.py <pid> [<count> <version> <chid>]

With just pid argument, it will generate a License Server ID (SPK).

With all arguments, it will generate License Key Pack (LKP).

Notes:

chid argument is listed in XML table

Example: server 2012 (r2) per user -> CHID 12 -> product id 12

corresponding version is 0x60002 -> 6.2

so version and chid args are 6.2 12

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment